2015-03-12 3 views
-2

Без выполнения цикла for в bash есть способ выполнить команду N раз? Например:Запустить команду N раз

$ pulldown 123 && pulldown 123 && # ...etc [100 times] 
+5

Почему бы вам не сделать петлю? Это нормальный способ сделать что-то подобное. – Kevin

+1

Ваш пример действительно отличается от цикла for, '&&' будет разбивать цепочку, если команда имеет ненулевой возврат. Это то, что вы на самом деле хотите? То есть цикл for, который прерывается при ошибке – texasflood

ответ

3

Вы можете использовать цикл for и просто игнорировать аргумент:

for i in $(seq 1 100); do pulldown 123; done 

Если вы по какой-то причине не можете использовать цикл for, вы можете использовать xargs -n 1 и игнорировать аргумент с чем-то вроде следующего: -n 1 указывает на запуск команды один раз на строку ввода, а -I XXX означает замену всех вхождений XXX в команде текущей строкой ввода (но поскольку мы не используем ее в команде, она игнорируется):

seq 1 100 | xargs -n 1 -I XXX pulldown 123 
3

может быть использован while цикл, что-то вроде этого:

i=0 
while [ $i -lt 100 ]; do 
     echo $i 
     i=`expr $i + 1` 
done 

В качестве альтернативы, возможно, ruby может быть использован с переключателем -е, например:

$ ruby -e '100.times { |i| puts i }' 
Смежные вопросы