我知道怎么写这个bash一次,但我再也想不出来了。
正如标题所说,它应该是旨在在Linux服务器上运行的脚本。
我的目标是在不反复输入的情况下执行这些命令。 (我在每次运行中链接输入文件。)
bsprun -npes 1 ./a.out file1.txt file2.txt
bsprun -npes 2 ./a.out file1.txt file2.txt
bsprun -npes 3 ./a.out file1.txt file2.txt
bsprun -npes 4 ./a.out file1.txt file2.txt
bsprun -npes 5 ./a.out file1.txt file2.txt
bsprun -npes 6 ./a.out file1.txt file2.txt
bsprun -npes 7 ./a.out file1.txt file2.txt
bsprun -npes 8 ./a.out file1.txt file2.txt
答案 0 :(得分:4)
实际上,在仔细阅读你的描述之后,也许你想要这个:
#!/bin/bash
bsprun -npes "$1" ./a.out "$2" "$3"
然后 chmod +x
脚本将其称为
./myscript 1 file1.txt file2.txt
./myscript 2 file2.txt file3.txt
./myscript 3 file4.txt file5.txt
...
如果输入文件根据模式发生变化,我们可以使脚本更加智能,但不清楚文件名是什么样的。
要获得您发布的确切输出,请将其放在如下的循环中:
#!/bin/bash
for i in {1..8}; do
bsprun -npes $i ./a.out file1.txt file2.txt
done
答案 1 :(得分:1)
如果您想继续这样做,请使用:
#!/bin/bash
i="1"
while true;
do
if [ $i -eq 9]; then
i=1
fi
bsprun -npes $i ./a.out file1.txt file2.txt
i = `expr $i + 1`
done
答案 2 :(得分:0)
听起来你想学习写BASH,你可能想看看
https://github.com/37signals/sub
它帮助我保持我的脚本井井有条
谷歌也是你的朋友
bash script loop example
上述搜索会返回大量您正在寻找的结果