[英]Append multiple items to path in fish shell (equivalent to: +=)
例如, chruby有一個用戶通過定義額外的ruby路徑。 下列:
RUBIES + =(/ opt / jruby-1.7.0“$ HOME / src / rubinius”)
在魚中有沒有很好的方法來實現這一目標?
所有魚類變量都是數組。 所以理論上這就簡單了
set -x RUBIES $RUBIES /opt/jruby-1.7.0 "$HOME/src/rubinius"
不幸的是,當導出var時,fish不會自動將該數組轉換為一串冒號分隔值。 目前,魚只為PATH和MANPATH做到了。
你可以這樣做:
set -x RUBIES "$RUBIES:/opt/jruby-1.7.0:$HOME/src/rubinius"
但是,假設RUBIES已經確定; 否則你得到一個帶有前導冒號的字符串,對於使用var的任何軟件,它可能有也可能沒有特殊含義。 處理這個很簡單:
if set -q RUBIES[1]
set -x RUBIES "$RUBIES:/opt/jruby-1.7.0:$HOME/src/rubinius"
else
set -x RUBIES "/opt/jruby-1.7.0:$HOME/src/rubinius"
end
太,如果你正在使用魚2.3(即將被釋放)或從git head構建的魚,你可以使用內置的新“string”來分割和連接冒號上的字符串:
set rubies (string split ':' $RUBIES)
set rubies $rubies /opt/jruby-1.7.0 "$HOME/src/rubinius"
set -x RUBIES (string join ':' $rubies)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.