dotfiles リポジトリをホーム ディレクトリに同期するためのシェル スクリプトを作成しました。これは Cygwin (zsh) では正常に動作していましたが、Linux (Xubuntu 12.10 の zsh) に移行したばかりで失敗しています。
スクリプトは、リポジトリ内の関連するドットファイルのリストを作成し、シンボリック リンクを作成する前に、衝突をアーカイブします。アーカイブ ルーチンは次のとおりです。
for i in $dotFiles; do
toArchive=$toArchive $(ls -d $i)
done
$dotfilesのアイテムが存在しない場合、これは失敗します。ls戻りNo such file or directory、スクリプトは終了します。
これを解決するためにリダイレクトstderrしますか? /dev/nullすなわち:
for i in $dotFiles; do
toArchive=$toArchive $(ls -d $i 2>/dev/null)
done
...またはより良い解決策はありますか?
(完全を期すために、私のスクリプトはhereです。)