シェルに空でない文字列があることを確認してください(!-zではありません)。

シェルに空でない文字列があることを確認してください(!-zではありません)。

私はこれを行う方法があることを知っていますが、インターネット検索は常にひどい結果を生み出します。

私がしたい:

if [[ ! -z "$var" ]]; then
   # ....
fi

しかし、今は覚えていません。次のような気がします。

if [[ -p "$var" ]]; then
   # ....
fi

または次のようになります。

if [[ -n "$var" ]]; then
   # ....
fi

誰もが検索エンジンに表示される良い答えを提供できますか?タイトルを最適に編集すると役立つことを願っています。

ベストアンサー1

-nテスト(「与えられた文字列の長さが0の場合はtrue 」)とは対照的に、テスト-z(「与えられた文字列の長さが0以外の場合はtrue」)を実行する必要があります。

テスト-pはまったく異なります(「指定されたファイルが存在し、名前付きパイプの場合はtrue」)。

bashインタラクティブシェルに次のように入力してこの情報を取得できます。

help test

testこれにより、組み込みユーティリティのドキュメントが提供されます(これは[; seeの別の変形であり、; seehelp [[[同じテストを使用しますhelp [[)。 「」というタイトルの文書に記載されているbashシステムマニュアル()も表示できます。man bash条件式」。

したがって、あなたのコードは次のいずれかになります

if [[ -n $var ]]; then ...; fi
if [ -n "$var" ]; then ...; fi
if test -n "$var"; then ...; fi

そう言えばあまり問題ないようだが。

if [[ ! -z $var ]]; then ...; fi

たとえば、値が空であることを確認し、値が空でない場合は、エラーメッセージを出力したい場合です。その後、コードは次の意図を記録します。空ではない、何か問題があります」。

おすすめ記事