我在使用 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