bash:変数の最初の行を変数に割り当てる

bash:変数の最初の行を変数に割り当てる

複数行の変数があり、変数の最初の行だけが必要です。次のスクリプトは問題を示しています。

#!/bin/bash

STRINGTEST="Onlygetthefirstline
butnotthesecond
orthethird"

echo "  Take the first line and send to standard output:"
echo ${STRINGTEST%%$'\n'*}
#   Output is as follows:
# Onlygetthefirstline

echo "  Set the value of the variable to the first line of the variable:"
STRINGTEST=${STRINGTEST%%$'\n'*}

echo "  Send the modified variable to standard output:"
echo $STRINGTEST
#   Output is as follows:
# Onlygetthefirstline butnotthesecond orthethird

質問:${STRINGTEST%%$'\n'*}コマンドの後に置くと最初の行が返されechoますが、割り当ての後に置くと改行をスペースに置き換えるのはなぜですか?

ベストアンサー1

おそらく最も効率的ではありませんが、ライナーが1つしかないようです。

firstLine=`echo "${multiLineVariable}" | head -1`

おすすめ記事