以下bash脚本创建一个目录(如果不存在)并将文件写入其中。现在,如果目录存在,它将检索封装在数组中的此目录的文件列表。这是代码:
if [ -d $ETC_DIR ]; then
echo " * wan27 has been found on your system"
echo " * checking for installed versions"
versions=( `ls $ETC_DIR` ) # line 27
else
echo " * First time installation! Creating etc directory now..."
mkdir $ETC_DIR
echo "$VERSION\n$USERi\n`date +%Y%m%d%H%M%S`\n$ROOT_DIR" > $ETC_DIR/install_$VERSION.txt
fi
这就是终端输出的内容:
27: Syntax error: "(" unexpected (expecting "fi")
因此,第27行实际上是第一段代码摘录:
versions=( `ls $ETC_DIR` )
我做错了什么?我也试过添加了冒号,但结果却相同......
答案 0 :(得分:6)
您的脚本依赖于Bash功能(使用带括号的赋值创建数组),但它由Bourne shell运行。
将脚本的第一行更改为:
#!/bin/bash