【发布时间】:2021-07-18 06:54:35
【问题描述】:
我正在编写一个 shell 脚本来一次检查两件事。第一个条件是检查特定文件是否存在,第二个条件是确认该目录中只有一个文件。
我正在使用以下代码:
conf_file=ls -1 /opt/files/conf.json 2>/dev/null | wc -l
total_file=ls -1 /opt/files/* 2>/dev/null| wc -l
if [ $conf_file -eq 1 ] && [ $total_file -eq 1 ]
then
echo "done"
else
echo "Not Done"
fi
返回以下错误
0
0
./ifexist.sh: 4: [: -eq: unexpected operator
Not Done
我可能犯了一个非常愚蠢的错误。谁能帮帮我?
【问题讨论】:
-
您的代码有轻微的语法错误。请在请求人工协助之前尝试shellcheck.net。另见stackoverflow.com/questions/4651437/…
-
报错信息与你贴的代码不一致。如果变量为空,则会出现该错误,将其设置为
ls。
标签: bash shell command-substitution