Ubuntu 这句话在oh my zsh中是什么意思?

Ubuntu 这句话在oh my zsh中是什么意思?,ubuntu,sh,zsh,Ubuntu,Sh,Zsh,在oh my zsh中,我发现了这一行(第2行): 它做了什么 此外,这行代码在mac上运行,但在我的ubuntu服务器上,它输出的错误是: .oh-my-zsh/tools/upgrade.sh: 2: .oh-my-zsh/tools/upgrade.sh: Bad substitution 该行将反斜杠转义$current\u path变量中的第一个空格。并非所有shell都支持这种类型的替换,这就是它在Ubuntu上失败的原因 据我所知,这条线没有理由出现在那里。如果在必要的地方漏出空

在oh my zsh中,我发现了这一行(第2行):

它做了什么

此外,这行代码在mac上运行,但在我的ubuntu服务器上,它输出的错误是:

.oh-my-zsh/tools/upgrade.sh: 2: .oh-my-zsh/tools/upgrade.sh: Bad substitution

该行将反斜杠转义
$current\u path
变量中的第一个空格。并非所有shell都支持这种类型的替换,这就是它在Ubuntu上失败的原因

据我所知,这条线没有理由出现在那里。如果在必要的地方漏出空白,即使有效,这种方法也不足以解决问题。更糟糕的是,因为后来使用变量时,变量被双引号括起来,对空格进行反斜杠转义,实际上会破坏它。

请参见手册中的

本质上,上面所做的是在
${current_path}
中的第一个空格前加上反斜杠


请注意,POSIX没有指定此语法(有关更多信息,请参阅),但所有当前的
bash
ksh
zsh
版本都支持此语法。
错误替换
表明您没有在shell下运行您认为可以运行的
升级.sh
工具(不支持它)。

在Ubuntu上用

cd ~/.oh-my-zsh
bash ~/.oh-my-zsh/tools/upgrade.sh

我设法使用以下命令进行更新:

cd ~/.oh-my-zsh
ggpull

#or

git pull origin master
gl=git pull(oh my zsh):
cd~/.oh my zsh&&gl
cd ~/.oh-my-zsh
bash ~/.oh-my-zsh/tools/upgrade.sh
cd ~/.oh-my-zsh
ggpull

#or

git pull origin master