2017-10-18 315 views
0

我有文件夾「destination /」,並在目標文件夾內包含可執行文件grade1。我的當前目錄爲「目的地/」如何在shell腳本中運行可執行文件?

我試圖運行

for i in FILES/*; do ./grade1 $i done 

它不斷說

./grade1 no such file or directory 

奇怪的地方在於,當我只是將代碼複製到命令行並運行它,它工作正常。問題只出現在我做的shell腳本

+1

腳本如何運行?特別是,運行腳本的工作目錄是什麼? –

+1

嘗試提及腳本中的完整路徑,例如'for i in/path/to/FILES/*; do/path/to/grade1 $ i;完成' – mathB

+0

你可以在你的foreach循環中調用'pwd'命令來知道你在哪裏。 –

回答

0

一個簡單的方法來解決這個問題可能會開始使用grade1可執行文件的完整路徑

for i in FILES/*; do {FULL_PATH}/grade1 $i done 
0

我不認爲grade1 真的是在你目前的工作目錄中,就像你聲稱的那樣。我建議你驗證一下,檢查你的可執行文件的權限。將代碼擴展到

echo current directory is $PWD 
ls -l grade1 
for i in FILES/*; do ./grade1 $i done 

這應該會揭示問題的根源。