我的脚本中的echo
有一个问题:
echo -n "Some string..."
打印
-n Some string...
并移动到下一行。在控制台中,它工作正常,没有换行符:
Some string...
发布于 2012-06-26 00:42:34
echo
命令有多个版本,具有不同的行为。显然,用于脚本的外壳程序使用的版本不能识别-n
。
printf
命令的行为更加一致。对于像echo hello
这样简单的事情,echo
是可以接受的,但我建议对任何复杂的事情都使用printf
。
你使用的是什么系统,你的脚本使用的是什么shell?
发布于 2012-06-29 02:28:41
bash
有一个名为“echo”的“内置”命令:
$ type echo
echo is a shell builtin
此外,还有一个"echo“命令,它是一个适当的可执行文件(即,与解释并执行echo
相反,shell派生和执行/bin/echo
):
$ ls -l /bin/echo
-rwxr-xr-x 1 root root 22856 Jul 21 2011 /bin/echo
echo
在\c
和-n
上的表现各不相同,你最好使用printf
,它有四种不同的*NIX风格,我看过了:
$ printf "a line without trailing linefeed"
$ printf "a line with trailing linefeed\n"
发布于 2012-06-26 00:44:53
尝试使用
echo -e "Some string...\c"
它对我来说就像预期的一样(正如我从你的问题中理解的那样)。
请注意,我是从man
页面获得此信息的。man
页面还指出,shell可能有自己版本的echo
,我不确定bash
是否有自己的版本。
https://stackoverflow.com/questions/11193466
复制相似问题