修改后的 PATH 没有 /usr/bin

修改后的 PATH 没有 /usr/bin

如何保存不包含的PATH修改?PATH_MOD/usr/bin

输出PATH

/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

答案1

你有没有尝试过:
PATH_MOD=$(echo $PATH | sed 's/:\/usr\/bin:/:/g')

编辑:双 \ 以使反斜杠可见

答案2

zsh外壳中:

path=("${path[@]:#/usr/bin}")

更新$PATH到位。或者改为设置$PATH_MOD

PATH_MOD=${(j[:])path:#/usr/bin}

zsh,中,$PATH与数组相关联$path(如在 中(t)csh),并${array:#pattern}扩展到数组中与模式不匹配的元素。

请注意,如果$PATH是 just /usr/bin,那么它就会变成空的。对于zsh,这意味着在任何地方都找不到命令,但对于大多数其他内容,这意味着当前工作目录正在寻找命令!

4.4+中的等效功能bash可以使用一些辅助函数来完成,例如:

remove_element() {
  local - text=$1 IFS=$2 element=$3 i
  set -o noglob
  set -- $text""
  for i do
    if [ "$i" != "$element" ]; then
       set -- "$@" "$i"
    fi
    shift
  done
  REPLY="$*"
}

remove_element "$PATH" : /usr/bin
PATH_MOD=$REPLY

相关内容