やりたいこと
初歩的な質問ですみません。
変数var
の値がorange
かapple
ではなかったら文字を出力させたいです。
しかし、値がorange
やapple
であるにもかかわらず文字が出力されてしまいます。
現在のコードと実行結果
~/fruit.sh
コード
bash
1#!/bin/bash 2 3set var 4var=apple 5 6if [[ ! $var = "orange" || ! $var = "apple" ]]; then 7 echo "オレンジやりんごではありません。" 8fi 9
実行結果
$ bash -x ~/fruit.sh + set var + var=apple + [[ ! apple = \o\r\a\n\g\e ]] + echo オレンジやりんごではありません。 オレンジやりんごではありません。
試したこと
知り合いに聞いたところ、以下のような解答が帰ってきたので実行したらうまくいきました。
ただ、どうしてこれがうまくいくのか、そして上記だとなぜできないのかわからないので教えてほしいです。
bash
1#!/bin/bash 2 3set var 4var=apple 5 6[[ "$var" != orange ]] || [[ "$var" != apple ]] || echo "オレンジやりんごではありません。"
その他
bashのバージョンはGNU bash, version 5.0.11(1)-release (x86_64-pc-linux-gnu)
です。
OSはArchLinuxです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/04 14:38
2019/12/07 03:21