Bash check环境变量设置失败';行不通

Bash check环境变量设置失败';行不通,bash,Bash,只是在我的服务器上玩,以获取下一台服务器的脚本设置。一切正常-现在我想在新服务器上运行它,但出现如下错误: sudo sh setup.sh 我是迪诺佐 setup.sh:10:setup.sh:[[:未找到 要开始的脚本没有那么多。 第10行是 如果[“$INT_DEV_HOSTNAME”];则 但是我不明白为什么它不能在Ubuntu 14.04.5 LTS上运行。你明确地告诉shell使用sh: sudo sh setup.sh Hostname is dinozzo setup.sh: 1

只是在我的服务器上玩,以获取下一台服务器的脚本设置。一切正常-现在我想在新服务器上运行它,但出现如下错误:

sudo sh setup.sh 我是迪诺佐 setup.sh:10:setup.sh:[[:未找到

要开始的脚本没有那么多。 第10行是

如果[“$INT_DEV_HOSTNAME”];则


但是我不明白为什么它不能在Ubuntu 14.04.5 LTS上运行。

你明确地告诉shell使用sh:

sudo sh setup.sh Hostname is dinozzo setup.sh: 10: setup.sh: [[: not found
在这种模式下,即使您默认使用的是POSIX模式,也会产生错误,因为它将处于POSIX模式


[[]]
测试的形式需要从shell中调用(其他shell也支持它,如ksh、zsh…

您明确地告诉shell使用sh:

sudo sh setup.sh Hostname is dinozzo setup.sh: 10: setup.sh: [[: not found
在这种模式下,即使您默认使用的是POSIX模式,也会产生错误,因为它将处于POSIX模式


[[]]
测试的形式需要从shell中调用(其他shell也支持它,如ksh、zsh…

这里已经回答了这个问题
sh
bash
不同
[[
是bash-ism——因此用
bash
执行脚本。这里已经回答了这个问题
sh
bash
不同[是bash-ism——所以用
bash
执行脚本。