繁体   English   中英

在外壳程序脚本中使用\\ c

[英]Use of \c in shell scripting

我正在编辑其他人的脚本,因此他/他经常使用\\c

echo "bla bla \c"

使用时仅打印

bla bla \c

屏幕上。

因此,我想知道为什么要使用它,或者可能是我遗漏了某些东西,因为它什么都不做? 我检查了转义字符,也没有找到任何类似的东西。 在shell脚本中,主要是在bash和korn shell中,\\ c有什么特殊用途吗?

\\ c在回显结束后将光标保持在同一行上,但是要启用它,您需要-e标志:

echo -e "bla bla \c"

我认为尝试是在没有换行的情况下终止回声。

如果它在您的系统上不起作用,则可以用这种方式替换,

echo "test \c"; echo " same line"

可以变成,

echo -n "test"; echo " same line"

(如Neil所建议,+ 1),

echo -e "test \c"; echo " same line"

POSIX指出:

\\ c抑制<newline>,否则在输出中的最后一个参数之后。 参数中“ \\ c”之后的所有字符都将被忽略。

基本上,符合POSIX XSI的echo实用程序在找到\\ c时应退出,如以下命令所示:

echo -e "foo bar \c baz" "quux"

没有自动换行符, 显然

在UNIX Shell中使用

UNIX Korn外壳程序使用\\ c转义字符表示继续(不自动换行):

echo“输入数据文件的路径:\\ c”

实际上,“ echo”的行为取决于所使用的外壳。
使用简单的Bourne shell,默认情况下将解释'\\ c'(因此光标将保留在行上)。
使用Bash时,默认情况下不会对其进行解释(因此将显示字符串'\\ c'),因此必须添加'-e'选项才能启用它。

NAME回声-显示一行文本

提要echo回显[SHORT-OPTION] ... [STRING] ... echo回显LONG-OPTION

描述将STRING(s)回显到标准输出。

   -n     do not output the trailing newline

   -e     enable interpretation of backslash escapes

   -E     disable interpretation of backslash escapes (default)

   --help display this help and exit

   --version

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM