file.sh
#!/bin/bash
if { true }
then echo "hi"
fi
我在一个shell脚本中有这样的代码。在尝试运行时,我得到:
% ./file.sh
./brackets.sh: line 4: syntax error near unexpected token `then'
./brackets.sh: line 4: `then echo "hi"'
在我的shell中运行:
% #!/bin/bash
if { true }
then echo "hi"
fi
zsh: event not found: /bin/bash
在我的shell中再次运行:
% if { true }
then echo "hi"
fi
hi
所以问题出在!/bin/bash
上。有人知道这是怎么回事吗?我上网查了一下,但是所有关于它的帖子都是很久以前的事了,而且看起来用户没有在文件/shell脚本中这样做。
我在MacOS Ventura上运行zsh。
需要说明的是,我并不是要求您修复我的程序。我只是出于学习的目的,好奇它到底出了什么问题。我使用{}
是因为我弄乱了退出状态。
1条答案
按热度按时间p1tboqfb1#
如果您使用的是zsh而不是bash,则可以使用以下命令启动文件:
另外,在
true
周围不需要花括号,所以应该可以这样做:注意,您也可以使用
bash
运行上面的文件。