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様シェルにも当てはまります。