为什么zsh的打印cmdand
每一个&&
在该行的开始?
例如,当我将以下几行粘贴到 Z shell 中时
echo "foo" && echo "bar" && \
echo "buz" && \
echo "jam"
Run Code Online (Sandbox Code Playgroud)
... zsh 会向我显示以下内容
echo "foo" && echo "bar" && \
cmdand cmdand> echo "buz" && \
cmdand cmdand cmdand> echo "jam"
Run Code Online (Sandbox Code Playgroud)
所以 zshcmdand
为&&
它在该行之前遇到的每一个添加一个。我只是注意到类似的适用于||
和cmdor
。
为什么这会有用?它不会让控制台变得混乱吗?这种行为可以控制吗?
我在 Mac OS 和 Ubuntu 上观察到 zsh 版本 >5.x 的这种行为。
它由环境变量的值控制PS2
,其默认值'%_> '
给出了这种行为。它的目的是显示您在多行命令中的位置(而不仅仅是以反斜杠结尾的行),例如,如果您在多行中键入条件命令,您将获得:-
$ if [ "$var" ]
if> then
then> echo var: $var
then> else
else> echo var: not set
else> fi
var: not set
$
Run Code Online (Sandbox Code Playgroud)
外壳不区分键入和粘贴的行。
在每个延续线上设置PS2='> '
一个简单的>
。
有关更多信息,请参阅手册man zshall
并搜索PS2
。
归档时间: |
|
查看次数: |
951 次 |
最近记录: |