我正在使用 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).]
。