参数前面带hyphen如何处理
在Linux中,一个横线-
表示一个选项的开始,如果这个选项是错误的,就会报错并停止执行。
例子
basename
我在.bashrc里source
了一个脚本,可以把$0
的basename
存放到一个变量中。我在字符界面下登录时,提示
basename: invalid option — b
Try `basename –help' for more information
后来经检查,$0
是-bash
,前面有个-
,因此不行。
(此段可略过)basename为什么要解析选项呢?它使用时没有一个可选选项。 答案:为了解析’–help’和’–version’。
grep
为了在一个帮助里找到一行,比如:
tar --help|grep '-j'
结果
grep: unknown option — j
Usage: grep [OPTION]… PATTERN [FILE]…
Try `grep –help' for more information.
它把’-j’当成自己的选项了。
应该这样
basename — "$0"
grep — '-j'
原因
--
是一个特殊的选项,它后面的一律不解释为选项。
因此,当要处理的参数(可能)以一个短横线开始时,要在它前面放置–
。