【发布时间】:2019-12-03 15:00:02
【问题描述】:
我正在使用一个 bash 脚本,该脚本需要命令行参数,前面是破折号,后面是文件名:
./script -abc file_name
在脚本中,我尝试使用以下命令打印出脚本的所有参数:
echo "$@"
其中显示:
-abc file_name
这是预期的。除了我单独使用字母“n”时,一切都打印得很好,即:
./script -n file_name
脚本中生成的 echo 语句只打印出 file_name 参数,而不是“-n”参数。此行为仅与字母“n”本身一起发生。当我尝试“-nx”或“n”与任何其他字母时,回显语句打印得很好......
为什么这个 echo 语句不能单独使用“-n”?
【问题讨论】:
-
echo -- "$@"也会打印出--。按照 Jeb 的建议使用printf。