当我通过发出 bash 命令时,每次发出新命令时都会出现以下错误:
bash
bash: parse_git_branch: command not found
错误是从我的 .bashrc 使用git自定义命令行的文件:
.bashrc
export PS1="\[\033[32m\]iMac5K@ \[\033[33;1m\]\w:\[\033[m\]\[\033[33m\]\$(parse_git_branch)\[\033[00m\] "
(注:我的 bashrc先生 .bash_profile 文件。)
bashrc先生
.bash_profile
这个 parse_git_brach 在我的房间里 bashrc先生 所以我不确定为什么会出现这个错误。即使是在我手动输入源之后 bashrc先生 ,我仍然得到错误。
parse_git_brach
发行 which bash 产量:
which bash
/usr/local/bin/bash
当你跑的时候 bash 没有 -l 或 -i ,它不会执行 .bash_profile 或 .bashrc 它本身,但只尊重它通过环境接收到的变量。
-l
-i
export 一个变量,你把它暴露给子进程。。。 通过环境
export
因此,您的子shell接收PS1定义,但是 不 接收功能 PS1 要求!
PS1
PS1级 export -f parse_git_branch
PS1级
export -f parse_git_branch
停止导出PS1。也就是说,拿着 出口 PS1='...' .
出口
PS1='...'
套 BASH_ENV=$HOME/.bashrc ENV=$HOME/.bashrc ,这将指示即使是非交互的shell也可以运行 bashrc先生 (当然,这可能会改变脚本的执行方式,因此有可能导致其他软件出现错误;此外,后者意味着 需要写为对非bash shell安全)。
BASH_ENV=$HOME/.bashrc
ENV=$HOME/.bashrc