Ich habe eine mehrzeilige Variable und möchte nur die erste Zeile in dieser Variablen. Das folgende Skript veranschaulicht das Problem:
#!/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
Frage: Warum wird ${STRINGTEST%%$'\n'*}
die erste Zeile zurückgegeben, wenn sie nach einem echo
Befehl platziert wird, aber Zeilenumbrüche werden durch Leerzeichen ersetzt, wenn sie nach der Zuweisung platziert werden?
$'...'
anstelle von Bash keine Unterstützung bietet .