代码之家  ›  专栏  ›  技术社区  ›  StevieD

新bash shell打开时bash找不到函数

  •  -1
  • StevieD  · 技术社区  · 6 年前

    当我通过发出 bash 命令时,每次发出新命令时都会出现以下错误:

    bash: parse_git_branch: command not found

    错误是从我的 .bashrc 使用git自定义命令行的文件:

    export PS1="\[\033[32m\]iMac5K@ \[\033[33;1m\]\w:\[\033[m\]\[\033[33m\]\$(parse_git_branch)\[\033[00m\] "

    (注:我的 bashrc先生 .bash_profile 文件。)

    这个 parse_git_brach 在我的房间里 bashrc先生 所以我不确定为什么会出现这个错误。即使是在我手动输入源之后 bashrc先生 ,我仍然得到错误。

    发行 which bash 产量:

    /usr/local/bin/bash

    1 回复  |  直到 6 年前
        1
  •  1
  •   Charles Duffy    6 年前

    当你跑的时候 bash 没有 -l -i ,它不会执行 .bash_profile .bashrc 它本身,但只尊重它通过环境接收到的变量。

    export 一个变量,你把它暴露给子进程。。。 通过环境

    因此,您的子shell接收PS1定义,但是 接收功能 PS1 要求!

    • PS1级 export -f parse_git_branch

    • 停止导出PS1。也就是说,拿着 出口 PS1='...' .

    • BASH_ENV=$HOME/.bashrc ENV=$HOME/.bashrc ,这将指示即使是非交互的shell也可以运行 bashrc先生 (当然,这可能会改变脚本的执行方式,因此有可能导致其他软件出现错误;此外,后者意味着 需要写为对非bash shell安全)。

    推荐文章