修复 *.sh 错误行 5:[:缺少"]",括号周围的间距正确


./regen_structs_proto.sh: line 5: [: missing `]'
grep: ]: No such file or directory
./regen_structs_proto.sh: line 5: [: missing `]'
grep: ]: No such file or directory

当我运行以下 Bash 脚本时,我收到上述错误(第 5 行是下面脚本的第一行):

#!/bin/sh
if [ docker --version | grep -q "Docker version" ]; then
echo "Check that docker is installed: confirmed."
else
if [ lsb_release -si | grep -q "Linux" ]; then
if [ lsb_release -si | grep -q "Ubuntu" ]; then
apt-get update;
apt-get install -y docker;
elif [ lsb_release -si | grep -q "Manjaro" ]; then
sudo pacman -S --needed docker;
else
echo "installation for Docker is not configured for your OS, please install manually and make a pull request to install in this script for your OS";
fi
fi
fi

如何修复这些错误?我已经三重检查了括号周围的间距是否正确。

括号test。如果不需要test,则不要使用括号。

if docker ... | grep ... ; then
...
fi

最新更新