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自带的终端。

posted @ 2020-09-19 12:01  带狗狗带  Views(321)  Comments(0Edit  收藏  举报