簡體   English   中英

如何在Shell腳本中從PATH中刪除第一個或多個段

[英]How to remove first segment or segments from PATH in shell script

停用此鏈接中所述的conda虛擬環境時,我想通過.sh腳本從PATH中刪除CUDA目錄。 env變量由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會自動刪除,但我仍然在/home/dude/anaconda/envs/my_v_env/bin找到該段/usr/local/cuda-9.0/bin:

因此,這將使用流操作刪除路徑上的前兩個條目:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM