在这种情况下为什么不在Bash中生成新行:
#!/bin/bash
function sample() {
local DATA=""
DATA="test1"$'\n'
DATA="${DATA}test2"$'\n'
echo ${DATA}
}
DATA=$(sample)
printf "%s" "${DATA}"
答案 0 :(得分:0)
$DATA
被扩展,并且在运行echo
之前,所有空格(包括换行符)都用于单词拆分。您应该始终引用参数扩展。
sample() {
local DATA=""
DATA="test1"$'\n'
DATA="${DATA}test2"$'\n'
echo "${DATA}"
}
答案 1 :(得分:-1)
您必须使用 echo 的 -e 选项来解释 \ n 字符:
echo -e "${DATA}"