![为什么我的 bash 终端启动会运行同一组命令两次?](https://linux22.com/image/158277/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%20bash%20%E7%BB%88%E7%AB%AF%E5%90%AF%E5%8A%A8%E4%BC%9A%E8%BF%90%E8%A1%8C%E5%90%8C%E4%B8%80%E7%BB%84%E5%91%BD%E4%BB%A4%E4%B8%A4%E6%AC%A1%EF%BC%9F.png)
我使用的是 Mac,每当我启动终端应用程序时,初始启动都会打印以下内容:
Picked up _JAVA_OPTIONS: -XX:MaxPermSize=4G -Xmx4G
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=4G; support was removed in 8.0
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)
Picked up _JAVA_OPTIONS: -XX:MaxPermSize=4G -Xmx4G
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=4G; support was removed in 8.0
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)
它似乎加载了两次 Java,我不知道为什么。我认为这是来自我的 ~/.bash_profile 文件,但我似乎找不到它的作用。这是我的bash_profile
:
export AD_USERNAME=myfirstname.mylastname
yodle_dev_include_repo_prompt=1
source $HOME/.dev-shell-utils/conf/sh/all
export GRADLE_OPTS="-Dfile.encoding=UTF-8"
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
# Instead of modifying your local .bash_profile, consider updating dev-shell-utils instead.
# TODO: Move the following into dev-shell-utils.
removeFromPath ()
{
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
setHaProxyAlias ()
{
sudo ifconfig lo0 alias 172.17.32.1
}
setjdk 1.8
# Prefer Homebrew installed utils
PATH=$PATH:$(brew --prefix coreutils)/libexec/gnubin
MANPATH=$(brew --prefix coreutils)/libexec/gnuman:$MANPATH
PATH=$PATH:/workspace/src/core/ThriftTools/Thrift/bin
export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "
export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad
alias ls='ls -GFh'
以为这可能是我的bashrc
文件,但似乎所做的只是设置一些别名和环境变量。
alias readlink="greadlink"
alias jbossrun="sudo /usr/local/jboss/bin/run.sh -b 0.0.0.0 -DSERVICE_DISCOVERY=true"
export _JAVA_OPTIONS="-XX:MaxPermSize=4G -Xmx4G"
export JBOSS_HOME=/usr/local/jboss
export PATH=/usr/local/bin:$PATH
当我启动 bash 终端时,有什么想法可能导致这种双重打印输出吗?我在用着超但默认的 Mac 终端应用程序和 iTerm 也会发生这种情况。
谢谢你的帮助!
答案1
您显示的代码中没有任何内容会打印您显示的任何输出,因此它一定来自您未显示的某些部分。
您应该能够通过以下信息自己找到罪魁祸首,或者至少隔离出一个小的有问题的部分:
- 在 macOS 上,每个终端默认打开一个登录 shell。
- 当 bash 作为登录 shell 启动时,它会执行来自
~/.bash_profile
. - 放在
set -x
顶部.bash_profile
,bash 将在执行每个命令之前打印每个命令的跟踪信息。它看起来像这样:
因此,请检查哪些命令打印了这个不需要的输出。+ export AD_USERNAME=myfirstname.mylastname + AD_USERNAME=myfirstname.mylastname + yodle_dev_include_repo_prompt=1 + source /home/intA/.dev-shell-utils/conf/sh/all …