从$ PATH中排除特定目录

las*_*gar 2 unix linux bash

我的系统上有多个MPI变体.每个用于编译特定的应用程序.我正在寻找一个脚本来从$ PATH中排除特定目录,以使用相应的MPI包装应用程序.有没有简单的方法呢?

gva*_*kov 6

也许是这样的:

with-excluded-path () {      
    echo "$PATH" | sed "s,$1:,,g"
}

or 

with-excluded-path () {
    echo "$PATH" | awk -vORS=":" -vRS=":" '$1 == "'$1'" { next }; {print $1}'
}

PATH=$(with-excluded-path "/path/to/exclude") /bin/application
Run Code Online (Sandbox Code Playgroud)

或者只需将所需的MPI路径添加到PATH的头部:

export PATH="/opt/the/mpi/i/want:$PATH"
Run Code Online (Sandbox Code Playgroud)

  • +1用于将已知路径添加到"PATH"的头部.试图删除路径比必要更复杂. (2认同)