bash 通配符扩展在一段时间后停止

bash 通配符扩展在一段时间后停止

我正在使用 bash 4.3 [在 debian jessie 8.5,内核 3.16.7-ckt25-2]。

我正在打开控制台窗口(使用 xfce4)或 ssh 会话并输入 shell 命令。有时稍后,shellexpansion 会停止工作。例子:

ls /usr/lib/u*
ls: cannot access /usr/lib/u*: No such file or directory

打开一个新会话(在本例中为 ssh)并执行相同操作:

ls /usr/lib/u* /usr/lib/udisks2: total 397 -rwxr-xr-x 1 root root 1328 Sep 30 2014 udisks2-inhibit* .....

我比较了两个会话中的BASHOPTS(在输出中set)显示出任何差异。这种情况经常发生,所以我真的必须摆脱它。但。深入挖掘后,我发现了这样的别名,这导致了它:

alias di='set -f; /ops/tools/di'

所以,我的最后一个问题是:如何在不使“-f”永久化的情况下得到相同的结果(我什至没有找到它保存在哪里)。SHOPT不是那个地方。

非常欢迎任何帮助、指示或更多信息!

答案1

不知道di是什么,但我会尝试:

alias di='set -f; /ops/tools/di; set +f'

在这种情况下,set +f实际上未设置旗帜f [Disable file name generation (globbing).]

相关内容