2014-08-27 158 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

相关问题