2011年10月31日 星期一

[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

沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...