在OH-MY-的zsh的upgrade tool,我發現這條線(2號線):這條線在oh-my-zsh中意味着什麼?
current_path=${current_path/ /\\ }
它幹了什麼?
此外,這條線在Mac,但在我的Ubuntu服務器時,它的輸出一個錯誤說:
.oh-my-zsh/tools/upgrade.sh: 2: .oh-my-zsh/tools/upgrade.sh: Bad substitution
在OH-MY-的zsh的upgrade tool,我發現這條線(2號線):這條線在oh-my-zsh中意味着什麼?
current_path=${current_path/ /\\ }
它幹了什麼?
此外,這條線在Mac,但在我的Ubuntu服務器時,它的輸出一個錯誤說:
.oh-my-zsh/tools/upgrade.sh: 2: .oh-my-zsh/tools/upgrade.sh: Bad substitution
該行將反斜槓轉義在$current_path
變量的第一個空間。所有shell都不支持這種替換類型,這就是它在Ubuntu上失敗的原因。
據我所知,這條線沒有理由在那裏。如果在必要時逃脫空白空間,那麼即使該方法奏效,該方法也不足。更糟糕的是,由於變量的後續使用只有在雙引號中才有空格,所以對空格進行反斜槓轉義實際上會破壞它。
請參閱手冊中的parameter expansion。
${name/pattern/repl} ${name//pattern/repl} Replace the longest possible match of pattern in the expansion of parameter name by string repl. The first form replaces just the first occurrence, the second form all occurrences.
在本質上,上面確實是在前面加上一個反斜槓在${current_path}
第一空間。
注意,不是由POSIX(見here獲取更多信息)指定該語法,但目前所有的bash
,ksh
和zsh
版本支持它。 Bad substitution
錯誤表明您沒有在您認爲自己所在的shell下運行upgrade.sh
工具(不支持該工具的工具)。
與
cd ~/.oh-my-zsh
bash ~/.oh-my-zsh/tools/upgrade.sh
更新它在Ubuntu我設法用命令來更新:
cd ~/.oh-my-zsh
ggpull
#or
git pull origin master
GL =混帳拉ZSH不會自我更新(OH- my-zsh): 'cd〜/ .oh-my-zsh && gl' – DmitrySandalov 2013-08-01 20:32:53
哦諷刺 - 沒有BASH – PJK 2013-06-08 14:22:12