2014-08-27 93 views
0

我正在編寫腳本,但得到錯誤:語法錯誤:單詞意外(期待「在」) 我真的不知道錯誤可能在哪裏語法錯誤:字意外(期待「in」)

#!/bin/bash 
for dir in "[email protected]" 

do 

mv "$dir"/* /tmp 

done 

if [ $# -lt 1 ] ; then 

echo "ERROR: no argument" 

exit 1 # pas 0 

else 

    case $# 

    -d) mv -R $dir/* /tmp   
     ;; 

-x) find -executable -type f | xargs mv -t "$dir"/* /tmp 

;; 

esac 

fi 
+3

你的腳本真的是雙倍間距嗎?所有這些空行都不是特別有用。一致的縮進將是。 – 2014-08-27 18:16:29

+0

您可能想要閱讀'bash'手冊頁中的'getopts'命令。 – chepner 2014-08-27 18:32:23

回答

4

正如錯誤所述,「in」缺失。每the case syntax

case word in [ [(] pattern [| pattern]…) command-list ;;]… esac

,但沒有「中的」代碼字($#)之後 - 添加它。

+3

更不用說'$#'永遠不會匹配'-d'或'-x'。 – 2014-08-27 18:21:24

+1

在破壞性'mv'命令開始重新排列事物之前,語法檢查以及什麼不應該先完成? – twalberg 2014-08-27 19:39:20

相關問題