2017-10-18 313 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 

这应该会揭示问题的根源。