複数行の変数があり、変数の最初の行だけが必要です。次のスクリプトは問題を示しています。
#!/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`