【发布时间】:2018-06-23 18:56:12
【问题描述】:
所以我这里有这个脚本叫updaterct2.sh
#!/bin/bash
FILE="./newopenrct2.tar.gz"
$(wget $1 -O $FILE)
$(tar xvzf $FILE)
echo $?
./newopenrct2.tar.gz 中唯一的文件是一个名为OpenRCT2 的文件夹,其中包含所有内容。运行此脚本会产生
./updaterct2.sh: line 4: OpenRCT2/: Is a directory
126
即使它正确地提取了文件...
作为测试,我尝试修改 updaterct2.sh 以创建目录
#!/bin/bash
FILE="./newopenrct2.tar.gz"
DIR="./OpenRCT2"
$(wget $1 -O $FILE)
$(tar xvzf $FILE -C $DIR)
echo $?
但它仍然产生相同的结果。
在终端中运行命令
wget http://cdn.limetric.com/games/openrct2/0.2.0/develop/2e36253/9/OpenRCT2-0.2.0-develop-2e36253-linux-x86_64.tar.gz -O ./newopenrct2.tar.gz
tar xvzf ./newopenrct2.tar.gz
工作没有任何错误和输出
./newopenrct2.tar.g 100%[===================>] 33.16M 9.96MB/s in 3.7s
...
OpenRCT2/
OpenRCT2/doc/
OpenRCT2/doc/changelog.txt
OpenRCT2/doc/licence.txt
OpenRCT2/doc/readme.txt
...
我觉得权限应该没有问题,如下
-rw-rw-r-- newopenrct2.tar.gz
-rwxrwxr-x updaterct2.sh
bash 脚本到底出了什么问题?为什么它给出一个非零的退出代码?
【问题讨论】:
-
你误用了
$()。 -
我应该改用什么?