エラー時の対処法「[: =: 単項演算子が期待される" というシェルスクリプトのエラーの解決法
文字列の等値性マッチングを行う場合、私は次のようなステートメントを使用していました。
if [ $STATUS == "OK" ]; then
echo "OK"
フィ
というエラーが出たとき、 "[: =: unary operator expected"というエラーが実行時に出たとき、原因がわからず、等号の両側のスペースや括弧の中のスペースを削除してみたが、うまくいかなかった。やっと、バイドゥの後、原因がわかり、条件式の外にもう一段"[]"を追加したら、以下のように、エラーが出なくなった。
if [[ $STATUS = "OK" ]]; <スパン では
echo "OK"。
フィ
その理由は、変数STATUSの値がNULLの場合は 条件式 は [ = "OK" ] となり、明らかに [ と "OK" は等しくなく、[ = "OK" ] が抜けています。 [記号が抜けているため、エラーになります。もちろん、いつもそうとは限りませんし、変数STATUSが空でなければプログラムは正常に動作しますので、やはりエラーはかなり隠されています。
また、このようなエラーを回避するために
if [ "$STATUS"x == "OK"x ]; then
エコー
OK"
fi.
もちろん、xは他の文字でもかまいません。ちなみに、シェルのダブルクォートの有無は、多くの場合、統一されています。
<スパン から取得した。 http://hi.baidu.com/vishare/blog/item/bd8ab9ee289753252cf53417.html
関連
-
[解決済み] "No such file or directory "と表示されるが、存在する
-
[解決済み] タブを区切り記号として指定するカットコマンド【閉じた状態
-
[解決済み] Centos 6 /usr/sbin/sendmail - 件名を付けてメールを送信する方法は?
-
[解決済み] usr/bin/envはどのような効果があるのでしょうか?
-
[解決済み] date: 余分なオペランド %d' エラー
-
バッドサブスティチューション
-
Linuxシェルプログラミングのエラー "bad substitution "の解決法
-
文字列 null with space エラー: 二項演算子が期待されています。
-
シェルwhileループのエラー曖昧なリダイレクトとwhileループの変数割り当て失敗問題
-
ハイブのsqlとシェルスクリプトを書いているときに、いくつかの痛い問題に遭遇しました
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】"ERROR. "を取得。ZooKeeperからマスターアドレスを取得できない。znode data == null" Hbaseシェル使用時
-
[解決済み] のコマンドがzshで見つからない [閉店]。
-
[解決済み] JenkinsでExecute Shellがビルドを失敗とマークする方法/タイミングは?
-
[解決済み] AWS cliの変数を置換して、シークレットマネージャーのパスワードを更新する。
-
[解決済み] sed が正規表現で終端がない代用品でエラーになる
-
linux shell script cannot be executed, error syntax error near unexpected token `$'\r'' solution.