How to Use Temporary Environment Variable in Bash for Loop

bashcommand lineforshellshell-script

I want to run YII_ENV=prod yii kw/test ten times. I tried

$ YII_ENV=prod for x in 1..10 do; yii kw/test done;
-bash: for: command not found
1304682651

(Seemed to run once.) I also tried

$ for x in {1..10} do; YII_ENV=prod yii kw/test done;
-bash: syntax error near unexpected token `YII_ENV=prod'

GNU bash, version 4.3.39(2)-release (i686-pc-cygwin)

Best Answer

First correct the syntax of your command, place the semicolons correctly. Instead of:

for x in 1..10 do; yii kw/test done;

Use (adding a correct brace expansion also):

for x in {1..10}; do yii kw/test; done

Then, add the variable:

for x in {1..10}; do YII_ENV=prod yii kw/test; done
Related Question