bash:rsync,选项作为变量

2023-11-23

我正在编写 bash 脚本,该脚本在某些部分将通过 ssh 同步文件。不幸的是,我面临着将 rsync 选项保持为变量的问题。请看下面:

    # variables
    directory="/etc"
    backupDirectory="/backup"
    incrementalBackup="/incremental"
    options="-a -e 'ssh -p 10022' -b --backup-dir=$incrementalBackup --delete"
    # rsync
    rsync $options user@server:$directory $backupDirectory

不幸的是,上面的脚本失败并出现 rsync 错误:

    Unexpected remote arg: user@server:/etc
    rsync error: syntax or usage error (code 1) at main.c(1201) [sender=3.0.6]

我在脚本调试过程中看到的事实是,ssh 选项('ssh -p 10022')被视为 rsync 选项。 问题是如何将这些额外的 ssh 设置正确传递到 rsync 中? 预先感谢您的提示。


使用数组;这就是为什么他们被添加到bash:

# variables
directory="/etc"
backupDirectory="/backup"
incrementalBackup="/incremental"
options=(-a -e 'ssh -p 10022' -b --backup-dir="$incrementalBackup" --delete)
# rsync
rsync "${options[@]}" user@server:"$directory" "$backupDirectory"

eval不是一个安全的使用选项;它不仅限于评估您想要的报价,而且会评估any代码。它可能适合您当前的情况,但会改变options可能会带来不可预见的后果,养成使用的习惯通常是一个坏主意eval当没有必要时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bash:rsync,选项作为变量 的相关文章

随机推荐

  • 如何通过我的 Discord 机器人使用 /python 发送嵌入内容?

    我一直在开发一个新的 Discord 机器人 我已经学到了一些东西 现在 我想让这些东西变得更加定制 我一直在尝试让机器人发送嵌入的公共消息 embed discord Embed title Tile description Desc c
  • 配置 WCF 服务 (Web.config) - HttpsGetEnabled、HttpsGetUrl

    我正在尝试将带有 WCF 服务的 Silverlight 部署到托管 基本上 我和这个人有同样的问题 如何配置 WCF 服务通过 HTTPS 工作而无需 HTTP 绑定 除了解决方案对我不起作用 edit 我一直粘贴错了 但还是不行 我已经
  • Python 控制台和 Ping 的文本输出,包括 \n\r [重复]

    这个问题在这里已经有答案了 我不知道发生了什么 但是当我打印到控制台或文本文件时 换行符 n 不起作用 而是显示在字符串中 知道如何在控制台和文本文件中避免这种情况吗 My code import subprocess hosts file
  • 如何使用 JavaScript 禁用 li 标签

    我在我的页面上使用以下 HTML ul li class tab1 a href tab1 htm Tab a a li li class tab2 a href tab2 htm Tab b a li li class tab3 a hr
  • 为 RESTful(超媒体)API 编写客户端

    这几天我一直在阅读 真正的 RESTful API 并且我think我快要明白它的意思了 但我偶然发现的一件事是 我什至无法想象如何为 真正的 超媒体 API 编写客户端 我读过的大多数例子都谈论浏览器和蜘蛛 但这并不是特别有帮助 一个是人
  • 将 checkstyle/google_checks.xml 与 maven-checkstyle-plugin 一起使用时出错

    我正在尝试使用检查样式 google checks xml with maven checkstyle 插件 如果我将 google checks xml 与最新的 checkstyle intelliJ 插件一起使用 一切都是正确的 但是
  • 如何正确地将 numpy 数组传递给 Cython 函数?

    这在很多地方都有描述 但我根本无法让它发挥作用 我正在从 Cython 调用 C 函数 cimport numpy as np cdef extern from test h namespace mytest void test doubl
  • 自定义wpf中切换按钮的切换状态

    我想自定义 wpf 中切换按钮的切换状态 我想在切换按钮打开时将图像设置为切换按钮 并在关闭时设置另一个图像 为此 我想到使用触发器 这就是我最终所做的
  • NSDataDetector 检测“电话号码”文本

    我解释这个问题的最简单方法是使用代码示例及其输出 但本质上发生的是NSDataDetector正在检测包含单词 phone number 的字符串中的电话号码 NSError error nil NSDataDetector dataDet
  • 使用 tweepy 从 twitter 流 api 中排除转发

    使用Python时tweepy从 Twitter 的流 API 中提取推文的库是否可以排除转发 例如 如果我只想要特定用户 ex 发布的推文 twitterStream filter follow 20264932 但这会返回转发 我想排除
  • 如何为运行时依赖添加Import-Package指令?

    我正在使用 Gradle 构建 OSGi jar 但在清单方面遇到了一些问题 这是我的构建脚本的摘录 apply plugin java apply plugin osgi jar baseName awesome manifest nam
  • 臃肿的 EXE 大小以及与 Qt/MingW 的不必要的依赖关系

    我试图弄清楚如何缩小在最新的 QT SDK 4 8 2 基于 mingw g 下编译的 EXE 文件的大小 我当时正在开发一个普通的 C 控制台应用程序 它有一个简单的循环 并且只有 includes iostream 当我注意到它生成的
  • NLog 使用 NLog.config 动态更改文件名

    如何使用 C 中的变量动态更改文件名 我的想法是创建一个日志文件 例如Log
  • Dataframe Apply 方法返回多个元素(系列)

    import pandas as pd 假设我有一个dataframe像这样 df pd DataFrame a range 4 b range 1 5 它看起来像这样 a b 0 0 1 1 1 2 2 2 3 3 3 4 以及一个将 X
  • 如何让 bc(1) 打印前导零?

    我在 Makefile 中执行类似以下操作 echo 0 1 0 1 bc 当然 在真实文件中 数字是动态的 它打印 2但我想打印它0 2 我想这样做而不诉诸于sed但我似乎找不到如何获得bc打印零 或者是bc只是无法做到这一点 您还可以使
  • 如何通过TCL分割字符串并存储在列表中

    有没有办法分割字符串并保存在列表中 如何拆分字符串并保存在两个列表中 例如 我有一个字符串 我用它分割了几个字符串 a 1 b 2 c 3 d 4 然后我想创建两个这样的列表 a b c d and 1 2 3 4 以下是简单的tcl代码
  • 比较图像以找出差异

    任务 我在装配线的末端安装了一个摄像头 捕获生产物品的图像 举例来说 我们 制作门票 上面有一些文字和图片 所以每 生成的票据被拍照并作为图像保存到磁盘 现在我 想要检查这些保存的图像是否存在异常 即比较 将它们转换为图像 模板 这可以 所
  • 在Matlab中使像素透明

    我已经在 matlab 中导入了图像 在显示它之前如何使图像的背景透明 例如 我在白色背景上有一个红色球 如何使图像的白色像素透明 以便只有红色球可见 白色像素透明 您需要确保图像以 png 格式保存 然后您可以使用 阿尔法 参数png 文
  • Kotlin 多平台:访问代码中的构建变量

    我正在开发一个 Kotlin 多平台项目 该项目是一个为 iOS 和 Android 应用程序提供功能的 SDK In our build gradle kts我们希望在 iOS 和 Android 之间的公共代码共享代码中访问几个变量 作
  • bash:rsync,选项作为变量

    我正在编写 bash 脚本 该脚本在某些部分将通过 ssh 同步文件 不幸的是 我面临着将 rsync 选项保持为变量的问题 请看下面 variables directory etc backupDirectory backup incre