我正在编写一个 bash 脚本来调用 Veeam Backup CLI 的函数。
在这个脚本中,我有一个配置新备份作业的功能。
function configureBackupJob() {
jobname="$1"
reponame="$2"
objects="$3"
advancedOptions="$4"
scheduleOptions="$5"
activeFullBackupOptions="$6"
indexingOptions="$7"
command="veeamconfig job create filelevel --name ${jobname} --reponame ${reponame} --includedirs ${objects} ${advancedOptions} ${scheduleOptions} ${activeFullBackupOptions} ${indexingOptions} --nosnap"
echo "${command}"
veeamconfig job create filelevel --name "$jobname" --reponame "$reponame" --includedirs "$objects" "$advancedOptions" "$scheduleOptions" "$activeFullBackupOptions" "$indexingOptions" --nosnap
}
在调用脚本时,我使用一个案例来确定应该调用哪个函数:
case $command in
# More cases before and after this one
configureBackupJob)
configureBackupJob "$2" "$3" "$4" "$5" "$6" "$7" "$8"
;;
*)
showHelp
;;
esac
我这样调用脚本:
sudo ./script.sh configureBackupJob "TheJobsName" "RepositoryName" "/path/FoldertoBeBackedUpByVeeam" "--daily --at 12:15" "--weekdays-full Monday,Wednesday" "--indexall"
我使用 Veeam 帮助中心的这个网站来了解这些参数:Veeam 帮助中心:创建文件级备份作业
调用脚本会导致错误消息
Unknown argument: [--daily --at 12:15].
如果我手动调用 veeamconfig,我的 echo 显示的命令可以正常工作。
为什么我可以直接调用命令而不是从脚本中调用?我尝试在没有双引号的情况下调用该函数,但这不起作用。
我不能硬编码所有的论点,比如
--includedirs
所以我需要找到一种方法来传递参数,比如
--daily --at 12:15