下面是读取输入的mwe 比较字符' a'。 它按原样调用时工作正常。
read -n 1 inp
if [ $inp = 'a' ]
then
echo "Hello"
fi
然而,当它来源时它给出了 错误:
parse error: condition expected: =
答案 0 :(得分:2)
这是因为您使用zsh
而不是bash
运行来源的脚本。
源代码脚本总是与执行源代码的shell一起运行,无论shebang如何。您的脚本是为bash
编写的,与zsh
不兼容,因此失败。
等效的zsh
代码是:
read -k 1 inp
if [ "$inp" = 'a' ]
then
echo "Hello"
fi