从长远来看,覆盖内置命令会降低我的速度吗?

从长远来看,覆盖内置命令会降低我的速度吗?

我正在寻找覆盖内置命令的方法,并找到了一种通过在~/.bashrc文件中定义函数的方法。我想覆盖该cd命令,以便当我切换到新目录时,它将执行以下操作:

  • 如果可用,请为 python 激活虚拟环境。
  • 如果可用,则打印出名为“.todo”的文件中的各个行。
  • 可能的新选择...

我将仅将其用于开发,实际上我可以通过编写一个命令来完成这些任务,例如$ cat .todo

问题是:覆盖 cd 命令是否会导致我使用其他应用程序(在脚本中使用 cd 命令)时速度变慢,还是可以忽略不计*?

*当然,这会导致速度下降,因为它每次都会检查两个 if 条件,但这种下降可以忽略不计吗?

我使用的是笔记本电脑而不是嵌入式系统,因此我有足够的处理能力。

答案1

答案显而易见:尝试一下。做好准备,随时撤消更改。

我用:

在我最开始的地方~/.bash_aliases(来源于~/.bashrc):

declare -i is_interactive
case $- in
  *i*) is_interactive=1 ;;
  *) is_interactive=0;;
esac

然后,

if [[ $is_interactive -eq 1 ]] ; then
# from the "xttitle(1)" man page - put info in window title
update_title()
{
    [[ $TERM = xterm ]] || [[ $TERM = xterm-color ]]  && xttitle "[$$] ${USER}@${HOSTNAME}:$PWD"
}

cd()
{
    [[ -z "$*" ]] && builtin cd $HOME
    [[ -n "$*" ]] && builtin cd "$*"
    update_title
}

在我的所有系统上,根据反射(5 台台式机,4 台笔记本电脑),有些比较旧,我从未注意到任何时间滞后。YMMV,取决于您在实际之前和之后做了多少工作cd

相关内容