我已禁用echo
built-in
,以便echo
在 中搜索$PATH
。我enable -n
为此使用了命令。请看下文。
$ type echo
echo is a shell builtin
$ enable -n echo
$ type echo
echo is /bin/echo
echo
但是当我从当前 shell 打开子 shell 时,再次使用内置的。请看下文。
$ type echo
echo is /bin/echo
$ bash
$ # Now I am in child shell
$ type echo
echo is a shell builtin
有什么方法可以在子 shell 中保留此设置,以便在子 shell 中也echo
可以找到$PATH
(即enable -n echo
保持有效)?
答案1
是的,有两种方法。一种用于交互式,另一种用于非交互式 bash shell。
对于交互式 bash shell,请将命令放入文件enable -n echo
中$HOME/.bashrc
。然后所有交互式 shell 都将使用外部回显。
我愿意不是建议对非交互式 shell 执行此操作,但要执行此操作,您需要将环境变量设置BASH_ENV
为包含行enable -n echo
.然后,所有非交互式 bash shell 将运行由 BASH_ENV 文件命名的文件,从而使它们使用外部回显。