shell zsh:未找到事件:/bin/bash --语法错误

rfbsl7qr  于 2023-01-26  发布在  Shell
关注(0)|答案(1)|浏览(450)

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。
需要说明的是,我并不是要求您修复我的程序。我只是出于学习的目的,好奇它到底出了什么问题。我使用{}是因为我弄乱了退出状态。

p1tboqfb

p1tboqfb1#

如果您使用的是zsh而不是bash,则可以使用以下命令启动文件:

#!/bin/zsh

另外,在true周围不需要花括号,所以应该可以这样做:

#!/bin/zsh

if true
then echo "hi"
fi

注意,您也可以使用bash运行上面的文件。

bash file.sh

相关问题