我想确保变量末尾包含换行符。我能做些什么?
答案1
case $var in
(*$'\n') echo ends in a newline;;
(*) echo does not end in a newline;;
esac
请注意,变量值以换行符结尾的情况非常罕见。
通常,我们会剥离这些内容,然后在打印时将其添加回来。
例如:
echo "$var"
打印内容$var
(假设它不以反斜杠开头-
且不包含反斜杠),后跟换行符。或者我们明确地这样做:
printf '%s\n' "$var"
在:
basename /path/to/file
basename
输出。该换行符不是文件基名的一部分,它只是为了确保输出是一行。file<newline>
在:
var=$(basename -- "$file")
命令替换会删除该换行符。事实上,它剥离了全部尾随换行符可能会被视为一个错误,因为它还会删除属于文件基名一部分的换行符。