Linux / UNIX:连续多次运行命令
如何在 Linux 或类 UNIX 操作系统下运行“foo”命令 10 次(或 n 次)?
您可以使用bash shell 循环(重复运行代码或命令)来运行命令 10 次,如下所示。
在 bash/ksh/zsh 中有很多方法可以运行命令 N 次。根据您的 shell 使用语法。
您可以使用bash shell 循环(重复运行代码或命令)来运行命令 10 次,如下所示。
在 bash/ksh/zsh 中有很多方法可以运行命令 N 次。根据您的 shell 使用语法。
句法
语法是:
## run command 10 times for i in {1..10}; do commandNameHere; done ## run script 20 times for i in {1..10}; do /path/to/cache.script.sh; done
例如,运行UNIX date 命令五次,输入:
for i in {1..5}; do date; done
您还可以使用类似 bash 的 c for 循环语法:
for ((n=0;n<5;n++)) do command1 command2 done
tcsh / csh / ksh和其他 shell 的for 循环语法可能因版本不同而有所差异。
使用 while 循环
使用基于 bash/sh/ksh posix 的 while 循环如下:
## define end value ## END=5 ## print date five times ## x=$END while [ $x -gt 0 ]; do date x=$(($x-1)) done
对 zsh 用户重复
如果您使用 Z shell (zsh)
repeat N { command } repeat N { /path/to/script } ## print date five times on screen ## 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
$ seq 1 5
$ seq 5
1 2 3 4 5
使用 xargs 命令运行date 命令五次:
$ seq 1 5 | xargs -I{} date
示例输出:
Tue Nov 28 00:32:52 IST 2017 Tue Nov 28 00:32:52 IST 2017 Tue Nov 28 00:32:52 IST 2017 Tue Nov 28 00:32:52 IST 2017 Tue Nov 28 00:32:52 IST 2017
您可以将 xargs 与多个命令行参数一起使用,如下所示:
$ seq 1 5 | xargs -I{} sh -c "date && sleep 1"
也可以使用并行命令:
有关更多信息,请参阅以下命令的手册页:
$ seq 5 | parallel 'echo {}'
$ seq 5 | parallel 'echo Hello $USER, {} times.'
$ man parallel
$ man xargs
$ man seq
关于使用 Perl 或 Python 的说明
您可以使用 python 或 Perl 如下运行 date 命令 5 次:
#!/usr/bin/perl for $i (1 .. 5) { system("date"); }
Python 示例:
#!/usr/bin/python # Run unix date command 3 times import os; for x in range(0,3): os.system("date")