Linux/UNIX shell 如何重复运行命令?
时间:2019-11-20 08:53:05 来源:igfitidea点击:
在Linux或UNIX助攻,如何循环运行某个命令或者某个脚本?
shell 语法
## 运行命令10次 for i in {1..10}; do 命令; done ## 运行脚本10次 for i in {1..10}; do /path/to/cache.script.sh; done
示例: 运行date命令5次
for i in {1..5}; do date; done
还可以使用下面的语法:
for ((n=0;n<5;n++)) do command1 command2 done
不同Shell的for循环语法可能存在小差异。
使用while循环多次执行命令
bash/sh/ksh的while循环语法如下:
END=5 x=$END while [ $x -gt 0 ]; do date x=$(($x-1)) done
z shell使用repeat命令
如果是Z Shell(zsh),可以使用repeate命令重复执行脚本/其他命令
repeat N { command } repeat N { /path/to/script } repeat 5 { date }
使用seq命令
使用seq可以打印数字序列。
然后通过处理输出,就可以多次执行命令:
seq LAST seq FIRST LAST seq FIRST INCREMENT LASE seq LAST | xargs command seq FIRST LAST | xargs command seq FIRST INCREMENT LASE | xargs command
显示数字1到5:
$ seq 1 5
或者
$ seq 5
输出示例:
1 2 3 4 5
通过使用xargs命令,执行date命令五次:
$ seq 1 5 | xargs -I{} date
还可以将xargs与多个命令行参数一起使用,如下所示:
$ seq 1 5 | xargs -I{} sh -c "date && sleep 1"
使用Perl或Python等脚本实现多次执行某个命令
在python或Perl中运行date命令5次:
Perl示例:
#!/usr/bin/perl for $i (1 .. 5) { system("date"); }
Python示例:
#!/usr/bin/python import os; for x in range(0,3): os.system("date")