很高兴知道您在阅读我的专栏,Torben! 说实话,我是在各种平台上进行开发的,不仅仅是 Linux,所以虽然您说的可能是真的,但并非适用于所有 *nix 系统。 例如,在我的 Mac OS X 系统上
$ cat test.sh
#!/bin/sh
echo -n testing
exit 0
$ sh test.sh
-n testing
$
令人失望。 这又回到了 20 世纪 80 年代。 我的涤纶在哪里? - DaveT
我总是从头到尾阅读 Dave Taylor 的 Work the Shell 专栏,尽管我在脚本编写等方面已经是老手了。 向他人学习总是可能的,无论你在这个行业有多少年。
在 2014 年 5 月的专栏中,Dave 提到 bash 不理解内置 echo 命令的 -n 选项,我对此感到奇怪,因为它对我来说效果很好(而且自从我记得以来一直有效——至少是几天前)。
我深情地回忆起过去的日子,那时我们必须跟踪两种不同的 echo 风格:BSD 版本,您告诉 echo 用 -n 选项(例如 echo -n "Hold your breath")屏住呼吸(即,末尾没有换行符),以及 Sys V 版本,您在句子的末尾小声说用 \c 屏住呼吸(例如 echo "Hold your breath\c")。 bash 仍然具有通过 -e 选项(例如 echo -e "Hold your breath\c")理解 Sys V 行为的能力,只是为了让生活更精彩。
但是,长话短说:据我所知,-n 选项应该或多或少地在 Linux 的任何地方工作,包括 bash 内置版本的 echo。
最好的祝愿
Torben