Options

使用 bash 數組添加選項

  • July 19, 2021

我正在使用 bash 腳本來呼叫rsync命令。決定在一個名為oser. 這個想法是查看兩個呼叫中的不同之處並將其放入數組中,而不是將所有常見選項放入數組中。

現在我想添加 –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

這個怎麼樣:

# "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+=(...)附加到數組中。

引用自:https://unix.stackexchange.com/questions/659043