[過去ログ] シェルスクリプト総合 その28 (620レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
88(2): 名無しさん@お腹いっぱい。 [sage] 2018/11/10(土) 18:00:25.18 AAS
bash(バージョン 4.4.12(1)-release)でスクリプト書いててちょっと謎が
$ a=1; b=2; [[ ${a}<=${b} ]]; echo $?
こうするとちゃんと終了コードの0が返ってきますが
$ a=1; b=2; [[ ${a} <= ${b} ]]; echo $?
比較演算子の前後にスペースを入れると「条件式に構文エラーがあります」「`${b}' 周辺に構文エラーがあります」と怒られます
$ a=1; b=2; [[ ${a} < ${b} ]]; echo $?
比較演算子をleでなくltにするとまた0が返ります
これって何故なんでしょう?
89(1): 名無しさん@お腹いっぱい。 [] 2018/11/10(土) 19:37:33.60 AAS
>>88
[[ ... ]] で使える演算子に <= は存在しない
それは数の比較ではなく
[[ "1" < "=2" ]]
という文字列の比較になっている
なので <= の右に空白を置くと
[[ "1" < "=" "2" ]]
となりエラー
条件式
外部リンク[html]:linuxjm.osdn.jp
90: 88 [sage] 2018/11/10(土) 21:37:24.33 AAS
>>89
さっそくありがとうございます
そうか、イコールをつけない不等号で上手く動いてるように見えるのは、文字列として辞書順で比較してるからなんですね
どうやら私の頭の中では、二重丸括弧での算術式展開とゴッチャになってたみたいです
何時間も唸ってたのが一撃でスッキリしました。ありがとうございました
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.303s*