shell脚本中意外标记'then'附近的错误

时间:2016-03-20 19:52:47

标签: bash shell

我是shell脚本的新手,这是我的shell脚本。我收到此错误并陷入其中

 defoul="http://distfiles.gentoo.org/snapshots"
 echo "cheking for latest snapshot">&2
 mkdir -p ~\cashe
 mkdir -p ~\cashe\temp
 cd ~\cashe\
 if [ -e portage-latest.tar.xz.gpgsig ]; then
    mv portage-latest.tar.xz.gpgsig ~\cashe\temp
 fi

3 个答案:

答案 0 :(得分:0)

发现了这个问题,只需要从cd命令中删除last \:

db_collection.create_index([("field_name", pymongo.ASCENDING)])
db_collection.reindex()

而不是

cd ~\cashe

答案 1 :(得分:0)

你的路径并不代表你可能认为的意思。 mkdir -p ~\cashe在当前目录中创建名为~cashe的目录,mkdir -p ~\cashe\temp创建另一个名为~cashetemp的目录。至少那是我的bash所做的。您可能希望使用/而不是\。

答案 2 :(得分:0)

我会写'如果'声明带有双方括号,并且还包括最右边的方括号之间的空格,即&#34 ;;",所以:

if [[-e ...]];然后

我的经验是,在shell编程中,空格是你的朋友。我会确保在任何两个相邻的句法元素之间留一个空格,只是为了安全起见。