if文でPython式の出力を使用する

if文でPython式の出力を使用する

単純なPython式の出力をif文の条件として使用したいと思います。わかりました

x=$(python3 -c "print('False')")
echo $x

出力が生成されるため、Falseこれが常に結果を生成する理由を理解できませんTrue

test () {
    if [ $(python3 -c "print('$1')") ]
    then
        echo "True"
    else
        echo "False"
    fi
}

test False

ベストアンサー1

$(python3 -c "print('$1')")一つだからひも論理値ではなく、[ ... ]文字列が空でないことをテストします。

期待どおりに動作させるには、テストを次に変更してください。

if [ "$(python3 -c "print('$1')")" = "True" ]

ただし、test関数名を使用すると、シェルの組み込み関数があいまいになるため、避けるべきですtest

おすすめ記事