【问题标题】:Identifying where to export PATH updates in both Mac OSX and Linux, regardless of terminal确定在 Mac OSX 和 Linux 中导出 PATH 更新的位置,无论终端如何
【发布时间】:2016-10-19 19:41:30
【问题描述】:

我熟悉在两个平台上依赖 .bashrc 的方法,但是总有人拥有 ZSH (.zshrc),我想知道检查/确定更新位置的最佳方法是什么PATH 变量永久跨 OSX 和 Linux,特别是来自 Bash 脚本,至少对于这两种类型的终端。不确定我是否需要做某种嵌套的 IF THENS,或者是否有一些优雅的东西。谢谢。

【问题讨论】:

  • 在超级用户中询问(最终是服务器故障)
  • 在 OS X 上是 .bashrc_profile
  • 不,不是.bashrc_profile,是.bash_profile

标签: linux bash macos scripting path


【解决方案1】:

/etc/profile 有一个系统范围的配置文件,您可以使用它来设置变量。当然,你需要root权限才能做到这一点。

【讨论】:

    【解决方案2】:

    这适用于 bash 用户和 zshell 用户,本例中的示例是添加 miniconda,但您可以很容易地更改 DIRECTORY_TO_APPEND_TO_PATH 的值...

    update_script_startup_file() {
        DIRECTORY_TO_APPEND_TO_PATH="\$HOME/miniconda/bin"
        echo "if [[ \":\$PATH:\" != *\":$DIRECTORY_TO_APPEND_TO_PATH:\"* ]]; then" >> $STARTUP_FILE
        echo "  export PATH=\"\$PATH:$DIRECTORY_TO_APPEND_TO_PATH\"" >> $STARTUP_FILE
        echo "fi" >> $STARTUP_FILE
    }
    
    if [ -n "`$SHELL -c 'echo $BASH_VERSION'`" ]; then
        STARTUP_FILE="$HOME/.bashrc"
        update_script_startup_file
    elif [ -n "`$SHELL -c 'echo $ZSH_VERSION'`" ]; then
        STARTUP_FILE="$HOME/.zshrc"
        update_script_startup_file
    else
        echo "Couldn't automatically add Miniconda to the PATH of your preferred terminal. We suggest working from Bash or ZShell." 
    fi
    

    如果有人想编辑它以添加对其他 shell 的支持,我们非常欢迎!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-08
      • 1970-01-01
      • 2016-12-18
      • 2023-01-19
      • 2012-04-07
      • 1970-01-01
      • 2020-08-30
      • 2020-09-11
      相关资源
      最近更新 更多