我正在尝试基于命令变量执行 if 语句,例如:
ssh_location=$(which ssh)
我的问题是,我想存储这个仅有的如果它存在于系统上,那么我可以使用二进制文件进行进一步处理,否则我想回显错误字符串。这就是我正在尝试但没有运气的事情:
if ["$ssh_location"] ; then
echo "it exists"
else
echo "does not exist"
fi
我不断收到此错误消息:
./test.sh: line 6: [/usr/local/bin/ssh]: No such file or directory
does not exist
(它肯定存在)。
答案1
您没有检查文件是否存在,而是尝试使用["$ssh_location"]
不存在的路径执行命令。
检查文件是否存在的语法是:
if [ -f "$ssh_location" ]
您缺少括号内的空格(是的,它们是必需的)和-f
.如果没有,-f
您将评估命令的返回代码ssh
。