我有一个问题echo
在我的脚本:
echo -n "Some string..."
版画
-n Some string...
并且移动到下一行。 在控制台它的工作正确地将不换行:
Some string...
我有一个问题echo
在我的脚本:
echo -n "Some string..."
版画
-n Some string...
并且移动到下一行。 在控制台它的工作正确地将不换行:
Some string...
有多个版本的echo
命令,用不同的行为。 显然,用于你的脚本的外壳采用的是无法识别的版本-n
。
该printf
命令有更加一致的行为。 echo
是罚款喜欢简单的事情echo hello
,但我建议使用printf
任何事情更加复杂。
是什么系统你,并没有你的脚本使用什么壳呢?
bash
有一个名为“回声”是“内置”的命令:
$ type echo
echo is a shell builtin
此外,还有一个“回声”命令是一个适当的可执行文件(即,壳派生并执行/bin/echo
,而不是解释echo
并执行它):
$ ls -l /bin/echo
-rwxr-xr-x 1 root root 22856 Jul 21 2011 /bin/echo
无论是行为echo
的WRT到\c
和-n
变化。 最好的办法是使用printf
,这是可以在四种不同的* NIX的口味,我看了一下:
$ printf "a line without trailing linefeed"
$ printf "a line with trailing linefeed\n"
与尝试
echo -e "Some string...\c"
这对我的作品如预期(因为我从你的问题理解的)。
请注意,我从这个信息man
页面。 该man
页还注意到,外壳可能有它自己的版本echo
,我不知道bash
有它自己的版本。
如果您使用的回声内的,如果与其他命令,比如“读”,它可能会忽略的设置,它会跳转到一个新行呢。