Lubuntu LXDE终端执行ls \后提示符变更功能及原因问询
现象原因与功能说明
这是Bash等shell的标准设计,完全是反斜杠的正常作用效果,不属于异常情况。
- 反斜杠
\是shell的转义字符,当它出现在行尾时,作用是转义换行符,告诉shell当前命令还未输入完毕,需要继续接收后续输入,此时弹出的>是专门的续行提示符。 - 你输入
ls \后直接换行,反斜杠转义了换行符,所以shell进入续行等待状态。你在>后输入的所有内容会自动拼接在上一行命令的末尾,最终实际执行的是ls 你输入的内容。如果输入的内容不是ls支持的参数、也不是合法路径,自然会触发ls的报错,命令执行结束后就回到正常的$提示符。
可利用的功能场景
这个特性本身就是为了提升命令输入、脚本编写的可读性设计的,常用场景如下:
- 拆分过长的单行命令:如果一条命令参数多、长度大,全部挤在一行很难阅读修改,就可以用行尾加
\的方式拆成多行:
# 例子:批量安装软件包 sudo apt install \ firefox \ neovim \ git \ docker.io
以上多行内容会被shell自动拼接为完整的sudo apt install firefox neovim git docker.io执行,不会报错。
- 编写shell脚本时,也常用该特性拆分复杂命令(比如长的ffmpeg转码命令、curl请求命令),提升脚本的可维护性。
注意:用于续行的反斜杠后面不能跟任何字符(包括空格、制表符),否则反斜杠会转义后面的普通字符,无法触发续行效果。
内容的提问来源于stack exchange,提问作者PMcPhillips
相关产品推荐
相关产品推荐

