将函数传递给变量时Bash中缺少新行
在这种情况下,为什么不在Bash中生成新行:将函数传递给变量时Bash中缺少新行,bash,Bash,在这种情况下,为什么不在Bash中生成新行: #!/bin/bash function sample() { local DATA="" DATA="test1"$'\n' DATA="${DATA}test2"$'\n' echo ${DATA} } DATA=$(sample) printf "%s" "${DATA}" 您必须使用echo的-e选项才能解释\n字符: echo -e "${DATA}" $DATA展开,在echo运行之前,所有空格(
#!/bin/bash
function sample() {
local DATA=""
DATA="test1"$'\n'
DATA="${DATA}test2"$'\n'
echo ${DATA}
}
DATA=$(sample)
printf "%s" "${DATA}"
您必须使用echo的-e选项才能解释\n字符:
echo -e "${DATA}"
$DATA
展开,在echo
运行之前,所有空格(包括换行符)都用于分词。您应该始终引用参数展开式
sample() {
local DATA=""
DATA="test1"$'\n'
DATA="${DATA}test2"$'\n'
echo "${DATA}"
}
将
echo${DATA}
替换为echo“${DATA}”
;不引用参数展开式就是在丢弃它们。\n
数据中没有\n
有向图,只有文字换行符,这是由于$“…”
引用。