【问题标题】:cd && ls function doesn't work in other aliases before reloading .bashrc?在重新加载.bashrc 之前,cd && ls 函数在其他别名中不起作用?
【发布时间】:2017-11-13 10:53:05
【问题描述】:

我的 .bash_aliases 中有以下代码:

c() { cd "$@" && ls -a ; }
alias cdd="c ~/Downloads"
alias r=". ~/.bashrc"

当我加载一个新终端时,在我执行 r 命令之前,cdd 不起作用。但这样做之后,它按预期工作。这是为什么呢?

编辑:.bash_aliases 来自安装 bash-it。以下代码在我的 .bashrc 中:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

我在 Linux Mint 上使用 Terminator 终端。

【问题讨论】:

  • 看起来bashrc 不包含在~/.bash_profile
  • @KaushikNayak :在这种情况下,r 也不应该工作。
  • 尝试将c() { cd "$@" && ls -a ; } 放入.bashrc
  • @sjsam : 哦耶。我的错
  • 如果 Terminator 和其他 Mac 终端模拟器一样,它会启动一个登录 shell(因为模拟器本身不是从 shell 会话启动的,所以它不会从以前来源 @ 的 shell 继承环境987654328@)。 .bash_profile 中是否有任何来自 .bashrc.bash_aliases 的内容?

标签: bash shell alias


【解决方案1】:

我在 Unix Stack Exchange 上询问了this same question 并找到了解决方法。 "c" 最初在启动时已映射为 clear,因此在重新加载 .bash_aliases 之前无法工作。将功能从“c”更改为“d”后,一切都从启动开始。

【讨论】:

  • 那么这个问题应该被关闭,因为您的问题不包含任何让我们解决这个配置问题的内容,而且这显然是跨站点重复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-22
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
相关资源
最近更新 更多