相关疑难解决方法(0)

zsh 的 PS1 中的换行符是什么?

我正在尝试为 zsh 设置多行 PS1,但\n没有被 zsh 解析,

PS1="%~\n %> "

我应该如何设置?

zsh

57
推荐指数
3
解决办法
4万
查看次数

为什么 shell 命令替换会吞下尾随的换行符?

根据以下示例,以及我最近的问题 在 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 操作必须有一些非常重要的原因,即命令替换,从它正在替换的命令输出中实际删除一些数据......
但我无法理解这个,因为它似乎是它该做什么的对立面......即。将命令的输出传递回脚本进程......保留一个字符对我来说似乎很奇怪,但我认为有一个合理的原因......我很想知道这个原因是什么...... .

shell text-processing command-substitution

27
推荐指数
3
解决办法
5915
查看次数

我的命令替换中的尾随换行符在哪里?

下面的代码最好地描述了这种情况。为什么最后一行不输出尾随换行符?每行的输出都显示在注释中。我使用的是GNU bash,版本 4.1.5

     echo -n $'a\nb\n'                  | xxd -p  # 610a620a  
           x=$'a\nb\n'   ; echo -n "$x" | xxd -p  # 610a620a
     echo -ne "a\nb\n"                  | xxd -p  # 610a620a
x="$(echo -ne "a\nb\n")" ; echo -n "$x" | xxd -p  # 610a62
Run Code Online (Sandbox Code Playgroud)

command-line shell text-processing command-substitution

15
推荐指数
2
解决办法
3379
查看次数