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