【问题标题】:How to remove first segment or segments from PATH in shell script如何在 shell 脚本中从 PATH 中删除第一个或多个段
【发布时间】:2019-01-03 13:56:17
【问题描述】:

我想在停用 conda 虚拟环境时通过 .sh 脚本从 PATH 中删除一个 CUDA 目录,如link 中所述。 环境变量由echo $PATH 显示。

/usr/local/cuda-9.0/bin:/home/dude/anaconda/envs/my_v_env/bin:/usr/sbin:/usr/bin:

所以我在 /home/dude/anaconda/envs/my_v_env/etc/conda/deactivate.d/ 中创建了一个 .sh 文件。

我关注的 .sh 脚本没有任何变化,但它在终端中确实发生了变化(当我执行 conda deactivate 时,此脚本将自动执行):

export PATH=$(echo ${PATH} | sed -r 's|/usr/local/cuda-9.0/bin||')

我只想要在停用 venv 之后:

/usr/sbin:/usr/bin:

/home/dude/anaconda/envs/my_v_env/bin 被自动删除,但我在 PATH 中仍然有 /usr/local/cuda-9.0/bin: 的段

【问题讨论】:

    标签: bash conda


    【解决方案1】:

    所以这会使用流操作删除路径上的前两个条目:

    num_entries_to_remove=2
    export PATH=`echo $PATH | sed 's/\:/\n/g' | tail -n+$(expr $num_entries_to_remove + 1) | tr '\n' ':'`
    

    【讨论】:

      猜你喜欢
      • 2016-08-17
      • 2012-04-01
      • 2019-02-10
      • 2013-04-18
      • 2012-01-11
      • 2020-10-08
      • 1970-01-01
      • 2018-11-09
      相关资源
      最近更新 更多