shell有减号开头的参数的问题

例:创建一个文件名为-1.html的文件

touch -1.html # 执行失败
touch -1.html # 执行失败
touch '-1.html' #创建了 1.html
touch "-1.html" #创建了 1.html

上面几个都是错误的例子,和空格、|、引号等不同,减号是没有斜杠转义的

到这里我查到了一个办法是

touch -- "-1.html"

可以成功创建了

但是我遇到的问题比这个恶心

类似

./run encrypt -d "-1234/abcd.data" -x1 xxx -x2 xxx

我遇到的减号开头是在-d参数后面,我尝试了把" -- "加到各个位置,都不能成功执行

最后胡乱试居然找到了办法

./run encrypt -d"-1234/abcd.data"

就是去掉-d和引号直接的空格,问题解决了,浪费2小时

原因不想深究了,有知道的朋友可以说下原因,感谢。

使用的shell是mac自带的终端。

原文地址:https://www.cnblogs.com/xirtam/p/13695641.html