bash - Bash 脚本使用 ssh 和日期在远程系统上设置坐标世界时
问题描述
我有一个尝试在另一台机器上同步时间的 bash 脚本。这不是我的源代码,但是当我重构 bash 脚本时,我试图让它通过 ShellCheck。
它的源代码如下所示:
d=$(date -u +%m%d%H%M%Y.%S)
ssh decs@host-zc1 "sudo date -u ${d}"
ShellCheck警告为SC2029,并指出“请注意,未转义,这将在客户端扩展。” 。事实上,我不想逃避这一点。
是否有另一种方法可以消除此警告并执行此步骤?
解决方案
当您确定警告不适用于您时,您可以通过# shellcheck disable
评论忽略它:
d=$(date -u +%m%d%H%M%Y.%S)
# shellcheck disable=SC2029
ssh decs@host-zc1 "sudo date -u ${d@Q}"
尽管您确实应该使用${d@Q}
或printf %q
确保名称将被正确转义。
推荐阅读
- c++ - 常量指针 C++ Stroustrup
- postgresql - 如何在包含多个值的 PostgreSQL 函数中创建参数?
- python - sklearn 多项式回归输出之字形曲线
- javascript - 函数 numberIsEven if 语句
- javascript - 在我刷新屏幕之前,基本 d3 不会输出圆圈
- laravel - 使用复选框过滤 Laravel 集合
- java - Java JButton 和 JPanel 从数组列表中继承信息
- html - 如何让弯曲的孩子占据100%的高度
- postgresql - 基于 api 调用或单个应用程序到数据库连接的 PostgreSQL 最大连接数?
- python - 检查张量是否是占位符?