Bash 为什么这个脚本在一台机器上工作,而在另一台机器上不工作?卡塔利纳马科斯酒店

Bash 为什么这个脚本在一台机器上工作,而在另一台机器上不工作?卡塔利纳马科斯酒店,bash,macos,shell,sh,virtual-machine,Bash,Macos,Shell,Sh,Virtual Machine,我有这个shell脚本,它可以在我的机器上正常工作。为了测试脚本,我有一个具有相同操作系统版本的虚拟机,MacOSCatalina。在“真正的机器”上,脚本工作正常,但在虚拟机上总是出现错误: 条件表达式中的语法错误,附近的语法错误]] 以下是脚本: echo“检查是否需要安装自制软件” echo“自制是macOS的软件包管理器” 睡眠2 哪个是s brew 如果[[$?!=0]] 然后 echo“未安装自制软件,正在安装自制软件” /usr/bin/ruby-e“$(curl-fsSL)ht

我有这个shell脚本,它可以在我的机器上正常工作。为了测试脚本,我有一个具有相同操作系统版本的虚拟机,MacOSCatalina。在“真正的机器”上,脚本工作正常,但在虚拟机上总是出现错误:

条件表达式中的语法错误,附近的语法错误]]
以下是脚本:

echo“检查是否需要安装自制软件”
echo“自制是macOS的软件包管理器”
睡眠2
哪个是s brew
如果[[$?!=0]]
然后
echo“未安装自制软件,正在安装自制软件”
/usr/bin/ruby-e“$(curl-fsSL)https://raw.githubusercontent.com/Homebrew/install/master/install)"
其他的
echo“已安装自制软件”
fi
睡眠2
回声“”
echo“检查是否需要安装node.js”
echo“node.js是angular所需的库”
睡眠2
哪个-s节点
如果[[$?!=0]]
然后
echo“未安装node.js,正在安装node.js”
brew安装节点
其他的
echo“node.js已安装”
fi
睡眠2
回声“”
echo“检查是否需要安装Angular”
echo“Angular作为一个巨大的框架作为我们项目的前端”
睡眠2
哪个是ng
如果[[$?!=0]]
然后
echo“Angular未安装,正在安装Angular”
npm安装角度传感器
其他的
echo“Angular已安装”
fi
回声“”
回音“完成”

我没有看到任何语法错误,但您可以完全删除
[

比如说,

if ! which -s brew
then
    echo "Homebrew is not installed, installing Homebrew now"
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
else
    echo "Homebrew is already installed"
fi