![Bash if 語句 [: 缺少 `]' 錯誤](https://rvso.com/image/57213/Bash%20if%20%E8%AA%9E%E5%8F%A5%20%5B%3A%20%E7%BC%BA%E5%B0%91%20%60%5D'%20%E9%8C%AF%E8%AA%A4%20.png)
我在使用 bash 時遇到了麻煩。我試圖將命令放入if
語句中,然後將其與字串進行比較。
這非常有效。
echo $(ipcs | grep Shared | awk '{print $2}')
當我將其放入if
聲明中時,我遇到了一些問題。
$ if [ "$(ipcs | grep Shared | awk '{print $2}')" -eq "Shared"]; then
echo expression evaluated as true;
else
echo expression evaluated as false;
fi
bash: [: missing `]'
expression evaluated as false
$ if [ "$(ipcs | grep Shared | awk '{print $2}')" = "Shared"]; then
echo expression evaluated as true;
else
echo expression evaluated as false;
fi
bash: [: missing `]'
expression evaluated as false
$ if [ "$(ipcs | grep Shared | awk '{print $2}')" == "Shared"]; then
echo expression evaluated as true;
else
echo expression evaluated as false;
fi
bash: [: missing `]'
expression evaluated as false
我嘗試過==
,=
因為-eq
我不確定該使用哪一個。
答案1
你的錯誤是因為你需要在和missing ]'
之間有一個空格,所以該行應該是."Shared"
]
if [ "$(ipcs | grep Shared | awk '{print $2}')" == "Shared" ]; then