2017-02-09 72 views
1

我剛安裝了CygWin和curl,因爲我想做一些無關的事情。但現在,我想在CygWin中執行一個.lua文件,並且希望結果在當前窗口CygWin窗口上打印。我希望它能像打開CMD一樣,然後做cd <directory where the file is>。然後只需要<filename>.lua並打印結果。那麼我該如何去做呢?對不起,我對Linux,Unix,CLI等有點新鮮,而且我對bash命令瞭解不多。如何在CygWin中執行.lua文件?

我嘗試使用該方法從這裏:How do I execute a file in Cygwin? 我只是做./<filename>.lua,我得到

./<filename>.lua: line 1: syntax error near unexpected token `"Hello world"' 
./<filename>.lua: line 1: `print("Hello world")' 

文件只是有

print("hello world") 
+1

你安裝了lua包嗎? 'cygcheck -c lua'從cygwin終端執行 – matzeri

+0

簽出文件編碼。 – moteus

+0

我做過'cygcheck -c',而lua沒有在那裏列出。如果我執行'cygcheck -c lua',它只是說'Package Version Status',但是lua沒有列出。我不知道我需要爲cygwin64安裝lua嗎?哦,對不起。我會早些時候回答,但是我一整天都忙於做某件事,而我完全忘記了這一點。 @moteus什麼? – rumpled105

回答

1

如果你的文件被標記爲可執行文件,運行./<filename>.lua將默認執行該文件作爲外殼腳本(即,shbash,zsh等)。這會導致您看到的錯誤,很容易重新創建。

bash

$ echo 'print("Hello world")' > script.sh && chmod +x script.sh && ./script.sh 
./script.sh: line 1: syntax error near unexpected token `"Hello world"' 
./script.sh: line 1: `print("Hello world")' 

你需要做的就是確保安裝的Lua(重新運行Cygwin的安裝GUI,或使用像apt-cyg的工具),以及位於您$PATH的第一件事。

然後,不要直接執行該文件,而應使用Lua解釋器運行它。

$ lua <filename>.lua 

或者,使用shebang指令來指示該文件應該如何被執行的外殼。

+0

哇,我甚至不知道你用那個'bash'做了什麼。再說一遍,我對Linux,Unix,CLI等並不是很滿意。無論如何,我做了你所說的。我搜索了apt-cyg,並安裝了它。但我實際上安裝了帶有Cygwin安裝GUI的'lua5.1'。所以我繼續做了'lua-5.1 .lua'並打印出來。謝謝你們幫助像我這樣的noob。 – rumpled105

+0

@ rumpled105'echo'將其參數輸出到標準輸出; '>'將輸出重定向到'script.sh'文件,覆蓋其內容。如果最後一個命令成功('0'的返回狀態),'&&'執行下一個命令。 'chmod + x'將文件標記爲可執行文件。 '。/ script.sh'運行該文件。你會通過在shell中玩耍並閱讀一些文檔來及時挑選這些東西。確保接受答案,如果它有幫助,所以其他人知道你的問題已經解決。乾杯。 – Oka

+0

我建議使用'#!/ usr/bin/lua' shebang行是執行此操作的首選方法。 –