Простой цикл в командной строке:
cobrakai$for((i=1;i<=10;i+=1)); do echo "Welcome $i times"; doneWelcome 1 times
Welcome 2 times
Welcome 3 times
Welcome 4 times
Welcome 5 times
Welcome 6 times
Welcome 7 times
Welcome 8 times
Welcome 9 times
Welcome 10 times
... и если я хочу добавить команду даты, я могу сделать это:
cobrakai$for((i=1;i<=10;i+=1)); do echo $(date -v -1d "+%Y-%m-%d"); done
2013-08-04
2013-08-04
2013-08-04
2013-08-04
2013-08-04
2013-08-04
2013-08-04
2013-08-04
2013-08-04
2013-08-04
Но, конечно, я на самом деле хочу, чтобы даты отсчитывались, поэтому я заменяю $ i на 1, но получаю, что получаю ...
for((i=1;i<=10;i+=1)); do echo $(date -v -$id "+%Y-%m-%d"); done
-: Cannot apply date adjustment
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
Я предполагаю, что это потому, что $ id распознается как $(id), а не ($ i)d, поэтому я стараюсь,
cobrakai$for((i=1;i<=10;i+=1)); do echo $(date -v -($i)d "+%Y-%m-%d"); done
-bash: command substitution: line 1: syntax error near unexpected token `('
-bash: command substitution: line 1: `date -v -($i)d "+%Y-%m-%d"'
а также
for((i=1;i<=10;i+=1)); do echo $(date -v -$i d "+%Y-%m-%d"); done
date: illegal time format
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
но я никуда не деться - какой ключ?