寻找一个bash脚本来运行linux服务器上具有不同输入的程序

时间:2011-01-03 17:04:30

标签: linux bash scripting

我知道怎么写这个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

3 个答案:

答案 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

上述搜索会返回大量您正在寻找的结果