fix: 正确的在 Darwin 上替换 zrc source 的实现
This commit is contained in:
parent
cecf62aadb
commit
83ba97dd18
30
init_priv.sh
30
init_priv.sh
@ -127,21 +127,6 @@ configure_vim() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
replace_zsh_source() {
|
|
||||||
local zshrc="$HOME/.zshrc"
|
|
||||||
local old_source="\$ZSH/oh-my-zsh.sh"
|
|
||||||
local new_source="~/.oh-my-zsh/custom/00-init.zsh"
|
|
||||||
|
|
||||||
# 使用 sed 进行替换,注意 macOS 和 Linux 的 sed 语法稍有不同
|
|
||||||
if [ "$(uname)" = "Darwin" ]; then
|
|
||||||
# macOS 使用的是 BSD sed,需要给 -i 选项传递一个空字符串作为扩展名
|
|
||||||
sed -i '' "s|${old_source}|${new_source}|g" "$zshrc"
|
|
||||||
else
|
|
||||||
# Linux 使用的是 GNU sed
|
|
||||||
sed -i "s|${old_source}|${new_source}|g" "$zshrc"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
configure_zsh() {
|
configure_zsh() {
|
||||||
[ -f ~/.zshrc ] && return
|
[ -f ~/.zshrc ] && return
|
||||||
|
|
||||||
@ -158,7 +143,20 @@ configure_zsh() {
|
|||||||
pkg_install autojump
|
pkg_install autojump
|
||||||
|
|
||||||
if ! grep -Fxq "source ~/.oh-my-zsh/custom/00-init.zsh" ~/.zshrc; then
|
if ! grep -Fxq "source ~/.oh-my-zsh/custom/00-init.zsh" ~/.zshrc; then
|
||||||
replace_zsh_source
|
local zshrc="$HOME/.zshrc"
|
||||||
|
local search_line="source \$ZSH/oh-my-zsh.sh"
|
||||||
|
local add_line="source ~/.oh-my-zsh/custom/00-init.zsh"
|
||||||
|
|
||||||
|
if [ "$(uname)" = "Darwin" ]; then
|
||||||
|
# macOS
|
||||||
|
awk -v search="$search_line" -v add="$add_line" '{
|
||||||
|
if (index($0, search) > 0) print add
|
||||||
|
print $0
|
||||||
|
}' "$zshrc" > ~/.zshrc.temp && mv ~/.zshrc.temp "$zshrc"
|
||||||
|
else
|
||||||
|
# Linux
|
||||||
|
sed -i "/${search_line}/i ${add_line}" "$zshrc"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cp $scriptdir/files/zsh/.zsh_user ~/.zsh_user
|
cp $scriptdir/files/zsh/.zsh_user ~/.zsh_user
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user