POSIX

POSIX

sed次のように(nullではないことが知られている)外部ユーティリティを呼び出すことで$myvarこれを行うことができます。

if [ "$(printf %s "$myvar" | sed -n '$=')" -eq 1 ]; then
  echo "Your variable has only one line, proceeding"
else
  echo "Error condition, variable must have only one line"
fi

bash組み込み関数のみを使用してこれを行う方法はありますか?

より良い点は、外部ユーティリティを呼び出さずにPOSIX指定の方法でこれを行う方法はありますか?


(この質問は好奇心とより良い作業方法を見つけることの1つです。上記のコードはする機能。もっときれいで速い方法があるかどうか疑問に思います。 )

ベストアンサー1

POSIX方式:

NL='
'
case $myvar in
  *"$NL"*) echo more than one line ;;
        *) echo one line ;;
esac

これはPOSIX以前のBourne様シェルにも当てはまります。

おすすめ記事