今天无意中被这个功能涮了一把。
$: echo $-
查看是否打开该功能,结果中有f表示关闭,没有f表示打开
打开:$: set +f
关闭:$: set -f
被涮的过程不提,下面开始调戏
进入任意一个目录
$: touch ls
$: ??
发生了什么,我的shell竟然执行了ls命令!
上面的touch可以换成任意会创建文件的命令,而且与文件中具体内容无关。
如果该目录下有中文目录,结果可能会是ls该中文目录的结果。
接下来,找几个目录,进去执行*试试看,诡异的结果啊
已测试受影响的shell: bash, dash
实在没想明白,这两个shell设计时怎么会想到匹配成文件夹中的文件名但是执行的却不是该文件
