我试图从另一个名为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
我不知道如何解决这个问题。感谢帮助。
将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=
使用该输出。