根据以下示例,以及我最近的问题 在 bash 中,尾随的换行符去哪儿了?,我想知道它“为什么”发生
x="$(echo -ne "a\nb\n")" ; echo -n "$x" | xxd -p
# Output is: 610a62
# The trailing newline from the 'echo' command
# has been "deleted" by Command Substitution
Run Code Online (Sandbox Code Playgroud)
我认为shell 操作必须有一些非常重要的原因,即命令替换,从它正在替换的命令输出中实际删除一些数据......
但我无法理解这个,因为它似乎是它应该做什么的对立面......即。将命令的输出传递回脚本进程......保留一个字符对我来说似乎很奇怪,但我认为有一个合理的原因......我很想知道这个原因是什么...... .
我有以下 bash 字符串,我需要在“Hello”字符串之前为其添加换行符:
bash -c "echo 'Hello' > /location/file"
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用不同的\n语法变体添加它;在双引号之前,在双引号的范围内,并有不同的转义变体。
如何在“Hello”字符串之前添加换行符,使其出现在第二行?