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