我正在尝试使用printf在bash脚本中格式化一些漂亮的输出
例如:
-----------------------
| This is some output |
-----------------------
但是我偶然发现了一些我不了解的行为。
$ printf "--"
给我错误 printf: usage: printf [-v var] format [arguments]
并
$ printf "-stuff"
导致-bash: printf: -s: invalid option
因此,显然printf认为我正在尝试传递一些参数,而我却没有。
同时,完全出于偶然,我发现了以下解决方法:
$ printf -- "--- this works now ----\n"
给我--- this works now ----
谁能解释这种行为?
1
另见unix.stackexchange.com/questions/11376/...
—
manatwork
出于兴趣,是否有任何实现
—
janmoesen 2011年
echo
会在执行时失败echo ------------
?大多数只支持-n
(没有尾随换行符),-e
(解释反斜杠转义的字符)并且可能-E
(不解释它们)并且在遇到其他类似选项的参数时也不会出错,对吗?(编辑:GNU /bin/echo
也支持--help
和--version
。)