使用'\n'
格式修剪尾随的"$()",
字符,但我无法从bash manual找到有关此内容的任何规范。这真的令人困惑,任何人都可以帮我解释一下吗?
[roxma@VM_6_207_centos ~]$ a="$(echo $'abc\n\n' | cat)"
[roxma@VM_6_207_centos ~]$ echo "$a"
abc
[roxma@VM_6_207_centos ~]$ a="$(echo $'abc\n\nb' | cat)"
[roxma@VM_6_207_centos ~]$ echo "$a"
abc
b
[roxma@VM_6_207_centos ~]$ a=$'abc\n'
[roxma@VM_6_207_centos ~]$ echo "$a"
abc
[roxma@VM_6_207_centos ~]$ a="$(echo $'abc ' | cat)"
[roxma@VM_6_207_centos ~]$ echo "$a" | url_encode
abc%20%20%0A[roxma@VM_6_207_centos ~]$
答案 0 :(得分:0)
好吧,我刚刚从manual
找到了解释Bash通过执行命令并替换来执行扩展 使用命令的标准输出
with any trailing newlines deleted. Embedded newlines are not deleted
替换命令,但是它们 可以在分词期间删除。命令替换$(cat 文件)可以用等效但更快的$(< file)替换。