bashスクリプトを使用してrsync
コマンドを呼び出しています。という配列にいくつかのオプションを収集することにしましたoser
。すべての共通オプションを配列に配置するのではなく、2つの呼び出しの違いを見て配列に配置するのがアイデアです。
これで --backup の可能性を追加したいのですが、rsync
実装方法が混乱しています。
oser=()
(( filetr_dryrun == 1 )) && oser=(--dry-run)
if (( filetr_dryrun == 1 )); then
rsync "${oser[@]}" -av --progress --log-file="$logfl" "$source" "$destin"
elif (( filetr_exec == 1 )); then
rsync "${oser[@]}" -av --progress --log-file="$logfl" "$source" "$destin"
else
rsync "${oser[@]}" -av --progress --log-file="$logfl" "$source" "$destin"
fi
答え1
これはどうですか:
# "always" options: you can put any whitespace in the array definition
oser=(
-av
--progress
--log-file="$logfl"
)
# note the `+=` below to _append_ to the array
(( filetr_dryrun == 1 )) && oser+=( --dry-run )
# now, `oser` contains all the options
rsync "${oser[@]}" "$source" "$destin"
より多くのオプションを追加するには、初期oser=(...)
定義に追加するか、一部の条件がある場合はoser+=(...)
配列に追加を使用します。