Наступний код найкраще описує ситуацію. Чому останній рядок не виводить кінцевий знак нового рядка? Вихід кожного рядка відображається в коментарі. Я використовую GNU bash, версія 4.1.5
echo -n $'a\nb\n' | xxd -p # 610a620a
x=$'a\nb\n' ; echo -n "$x" | xxd -p # 610a620a
echo -ne "a\nb\n" | xxd -p # 610a620a
x="$(echo -ne "a\nb\n")" ; echo -n "$x" | xxd -p # 610a62
tmp=$(somecommand; echo a)
... Це, безумовно, призвело до домівки до моменту ... Поки я не побачив приклад, мою схильність все одно було б використовувати echo -n a
... але, звичайно ж, немає необхідності тому -n
, що Command Substitution видалить введений кінцевий новий рядок у будь-якому випадку! ... дякую ...
tmp=$(somecommand; echo a); tmp=${tmp%a}