程式扎記: [Ubuntu 常見問題] Syntax error: Bad for loop variable解決方法

標籤

2011年11月11日 星期五

[Ubuntu 常見問題] Syntax error: Bad for loop variable解決方法

轉載自 這裡 
前言 : 
今天接手一個 Test automation 的 shell script, 無奈怎麼跑都會出現 "Bad for loop variable". 查了一下發現原有的 script 語法並沒有錯誤. 還好有 google 到原來是 Ubuntu 使用 dash 取代了我們常見的 bash. 而在 for loop 地方會出現如下報錯訊息 : 
john@tda-server:~/Test/CreateAccount$ sudo ./creataccount.sh <執行 script>
./creataccount.sh: 8: Syntax error: Bad for loop variable

而第八行的部分剛好就是 for loop : 
  1. #!/bin/sh  
  2. loop=755  
  3. touch passwdlist.txt  
  4.   
  5.   
  6. ## Create account and prepare password list file  
  7.   
  8. for (( i=1; i<=${loop}; i+=1 ))  
  9. #for ((i=756;i<=777;i+=1));  
  10. do  
  11.         echo -n "*** $i ***  "  
  12.         useradd -m user$i  
  13.         echo user$i":"user$i >> passwdlist.txt  
  14.         echo "process next account..."  
  15. done  
  16.   
  17.   
  18. echo "Change password..."  
  19. ## Start to create account  
  20. cat passwdlist.txt | chpasswd  
解決方法 : 
解決方法就是執行下面命令 : 
john@tda-server:~/Test/CreateAccount$ sudo dpkg-reconfigure dash

接著會出現下面的對話框, 按Tab 選擇 後退出 : 
 

再次執行 shell script 便可以成功! 

補充說明 : 
鳥哥Linux 私房菜 - 第十三章、學習 Shell Scripts

沒有留言:

張貼留言

網誌存檔

關於我自己

我的相片
Where there is a will, there is a way!