使用 bash 数组添加选项

使用 bash 数组添加选项

我正在使用 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

答案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+=(...)附加到数组。

相关内容