0

私は次のものを持っています:

if [ $kernel == 'Darwin' ]; then
    $HOME="/Users/$user"
elif [ $kernel == 'Linux' ]; then
    $HOME="/home/$user"
fi

# Let the script know what the dotfiles dir is
dotfiles_dir="$HOME/dotfiles"

# Making symlinks to shell files, add yours as you need
echo 'Making symlinks to shell files'
ln -sfn -v $dotfiles_dir/shells/zsh $HOME/.zsh
ln -sfn -v $dotfiles_dir/shells/zsh/zshrc $HOME/.zshrc
ln -sfn -v $dotfiles_dir/shells/bash $HOME/.bash
ln -sfn -v $dotfiles_dir/shells/bash/bash_profile $HOME/.bash_profile
ln -sfn -v $dotfiles_dir/shells/bash/bashrc $HOME/.bashrc
ln -sfn -v $dotfiles_dir/shells/profile $HOME/.profile
echo "Done at [$time]...\n"

ただし、これは奇妙に次のように出力されます。

[Other output here...]

Making symlinks shell files
/Users/eduan/.zsh -> /Users/eduan/dotfiles/shells/zsh
/Users/eduan/.zshrc -> /Users/eduan/dotfiles/shells/zsh/zshrc
/Users/eduan/.bash -> /Users/eduan/dotfiles/shells/bash
./bashrc -> /Users/eduan/dotfiles/shells/bash/bashrc
/Users/eduan/.profile -> /Users/eduan/dotfiles/shells/profile
Done at [08:15]...

[Other output here...]

この予期しない出力が得られる理由を誰か教えてもらえますか? 残りのシンボリック リンクは正しく生成されますが、何らかの理由で Bash シンボリック リンクが台無しになります。

ところで、これはシンボリックリンクを生成する大きなスクリプトにあります。これはほんの一部です。混乱しないように、関連する部分を入れておきます。:)

編集:

スクリプトの最新バージョンへのリンクは次のとおりです: https://github.com/Greduan/dotfiles/blob/master/scripts/make_symlinks.sh

4

2 に答える 2

1

この行は間違っていますね。宛先ディレクトリがありません。

ln -sfn -v $dotfiles_dir/shells/bash/bashrc
于 2013-01-10T14:46:19.787 に答える
1

symlink コマンドの darwin バージョンには、bashrc の宛先がないため、現在のディレクトリに移動します。

スクリプトの一部に 2 つのバージョンがある理由がわかりません。

また、バックアップディレクトリが既に存在する場合にのみ作成しますが、これは正しくありませんか?

于 2013-01-10T14:42:18.830 に答える