0
我有在zsh的工作,但在bash不起作用腳本中的一行:有沒有辦法做多個shell變量擴展/參數替換?
SHORTDIR=${${${PWD##*/}//./_dot_}//:/_colon_}
這基本上是basename $PWD | sed -e 's/\./0/g' -e 's/:/1/g'
短/效率的版本。
將變量擴展串聯在一起的語法是什麼?
我有在zsh的工作,但在bash不起作用腳本中的一行:有沒有辦法做多個shell變量擴展/參數替換?
SHORTDIR=${${${PWD##*/}//./_dot_}//:/_colon_}
這基本上是basename $PWD | sed -e 's/\./0/g' -e 's/:/1/g'
短/效率的版本。
將變量擴展串聯在一起的語法是什麼?
不幸的是,替換的第一部分必須是參數名稱。一個替代的sed版本將是:
echo $PWD | sed -e 's!.*/!!' -e 'y/.:/01/'
[擊壞取代與子外殼和子串(的
我希望有會是一個更好的辦法比
SHORTDIR=${PWD##*/}
SHORTDIR=${SHORTDIR//./_dot_}
SHORTDIR=${SHORTDIR//:/_colon_}
,但是這是我堅持。
根據@perreal鏈接的問題的答案,bash基本上不允許擴展變量本身作爲「參數」,這就是爲什麼它失敗。
可能重複http://stackoverflow.com/questions/5917439/bash-bad-substitution-with-subshell-and-子) – perreal 2013-04-29 00:03:35