前言 :
今天接手一個 Test automation 的 shell script, 無奈怎麼跑都會出現 "Bad for loop variable". 查了一下發現原有的 script 語法並沒有錯誤. 還好有 google 到原來是 Ubuntu 使用 dash 取代了我們常見的 bash. 而在 for loop 地方會出現如下報錯訊息 :
而第八行的部分剛好就是 for loop :
- #!/bin/sh
- loop=755
- touch passwdlist.txt
- ## Create account and prepare password list file
- for (( i=1; i<=${loop}; i+=1 ))
- #for ((i=756;i<=777;i+=1));
- do
- echo -n "*** $i *** "
- useradd -m user$i
- echo user$i":"user$i >> passwdlist.txt
- echo "process next account..."
- done
- echo "Change password..."
- ## Start to create account
- cat passwdlist.txt | chpasswd
解決方法就是執行下面命令 :
接著會出現下面的對話框, 按Tab 選擇
再次執行 shell script 便可以成功!
補充說明 :
* 鳥哥Linux 私房菜 - 第十三章、學習 Shell Scripts