这可能非常简单,但是有没有一种简单的方法可以在控制台中编写一次命令,并在运行时指定执行n
次数n
?像这样:
repeat 100 echo hello
是否存在这样的命令(假设典型的 Linux 安装)?
或者我应该在 bash 中编写某种循环?
答案1
是的,这是可能的。Bash 具有非常广泛的脚本语言。在这种情况下:
for i in {1..100}; do echo 'hello'; done
更多循环示例:http://www.cyberciti.biz/faq/bash-for-loop/
完整 bash 参考:http://www.gnu.org/software/bash/manual/bashref.html
答案2
for 循环语法很愚蠢。下面这个更简短:
seq 10|xargs -I INDEX echo "print this 10 times"
答案3
或者我应该在 bash 中编写某种循环?
是的,你会喜欢这样的:
for(( i = 0; i < 100; i++ )); do echo "hello"; done
或者更短:
for((i=100;i--;)); do echo "hello"; done
答案4
我没有找到一个“标准”的 Linux 工具来完成这项工作,但我通常会在安装过程中保留我的点文件(.bashrc、.vimrc 等),因此如果从在新安装中保留点文件的角度来看,以下内容非常“标准”:
在 .bashrc 或 .bash_aliases 的末尾放入以下定义:
repeat() {
n=$1 #gets the number of times the succeeding command needs to be executed
shift #now $@ has the command that needs to be executed
while [ $(( n -= 1 )) -ge 0 ] #loop n times;
do
"$@" #execute the command; you can also add error handling here or parallelize the commands
done
}
保存文件并重新打开 shell,或者在现有 shell 中执行source /path/to/.bashrc
或source /path/to/.bash_aliases
(无论选择修改哪个)。
就是这样!您应该能够按以下方式使用它:
repeat 100 echo hello
repeat 84 ~/scripts/potato.sh
ETC。