我想写if
如下声明:-
if [$x == "string"]
then
echo "ok"
fi
但出现以下错误
./bash_if.sh[6]: [0: not found.
答案1
[
后面需要一个空格,因为[
实际上是一个命令(/usr/bin/[
在 Linux 上,尽管 bash 有一个它使用的内置版本)。如果没有空格,bash 会将 $x 转换为值,然后尝试运行命令[0
,就像您输入了lssomedir
或 一样echohi
。
此外,如果您正在测试字符串,则应该在 $x 周围加上引号:
if [ "$x" == "string" ]
否则,如果 $x 为空或未设置,您将收到错误,因为没有引号,在“扩展” $x 后,它将看起来像
if [ == "string" ]