我正在尝试从另一个名为grid.sh的运行一个名为run.sh的bash脚本。它的工作形式如下:
#!/bin/bash
./run.sh
但是当我把它放在for循环中时它会失败并出现错误:"没有这样的文件或目录":
for i in {1..50}
do
./run.sh 50000 $i
done
部分错误输出是:
./grid.sh: line 7: /GlobalStorage/ClusterUsersStorage/aibrahim/qcdgrid_Head/run.sh 50000 1: No such file or directory
./grid.sh: line 7: /GlobalStorage/ClusterUsersStorage/aibrahim/qcdgrid_Head/run.sh 50000 2: No such file or directory
./grid.sh: line 7: /GlobalStorage/ClusterUsersStorage/aibrahim/qcdgrid_Head/run.sh 50000 3: No such file or directory
./grid.sh: line 7: /GlobalStorage/ClusterUsersStorage/aibrahim/qcdgrid_Head/run.sh 50000 4: No such file or directory
./grid.sh: line 7: /GlobalStorage/ClusterUsersStorage/aibrahim/qcdgrid_Head/run.sh 50000 5: No such file or directory
我不知道如何解决这个问题。 感谢帮助。
答案 0 :(得分:-1)
将run.sh
的完整路径名分配给如下变量:
run=/home/amin/run.sh # or wherever it is...
然后在循环内:
${run} 50000 $i
如果错误" 没有这样的文件或目录"仍然会发生,可能是一个错字:纠正run=
以反映实际的真实路径名。由于似乎对run.sh
的真实路径名存在一些疑惑,请使用类似realpath
or readlink -e
的工具来查找它:
cd
到其中包含run.sh
的目录。realpath ./run.sh
,并记下完整的路径名输出。run=
以使用该输出。