bash - 通过 ssh 传递变量
问题描述
我正在尝试通过 ssh 传递变量,并编写了两个简短的测试脚本(bash)
这个是在另一边执行脚本(它至少部分有效)
我开始执行:'mms test alpha one'
#!/bin/bash
sshpass -p (password) ssh hellfire@192.168.0.11 'bash /scripts/mms2 "$@"'
执行的第二个脚本是:
#!/bin/bash
echo "$@" >/scripts/test1.txt
此脚本仅用于测试是否传递参数。
到目前为止,它创建了文本文件,但它是空的,所以我不知道这两个或只有一个脚本是否有问题。
基本上我想将一组变量传递给服务器上的脚本,这些变量可以包含空格。
有人有任何提示吗?
解决方案
我通过@Gordon Davidsson的评论发现$(printf "%q " "$@")
可以将其作为字符串发送,因此远程服务器不会将变量解释为不同的命令。
我的新工作脚本是:
#!/bin/bash
sshpass -p (password) ssh hellfire@192.168.0.11 "bash /scripts/mms2 $(printf "%q " "$@")"
推荐阅读
- javascript - 笑话:如何模拟从 index.js 文件导出的自定义模块?
- visual-studio-code - 格式化程序在 lineSplit 上的 VSCode 中不起作用
- typescript - 创建泛型类型实例的通用存储库
- php - 如何从数据库查询买家订单到他们的资料
- node.js - 使用 NodeJS 实例化一个 Admin SDK 目录服务对象
- php - 自定义分类未显示在自定义帖子列表中(我正在尝试逐字复制工作代码)
- c# - C# 使用 AOP 在运行时将代码注入外部方法
- python - 循环拆分列表
- spring-boot - 如何在 Spring Boot 应用程序中使用 Keycloak Policy Enforcer
- random - MicroPython 中的 random 似乎确实有什么作用?