【发布时间】:2013-04-08 00:10:59
【问题描述】:
我想通过 ssh 向 shell 脚本传递一个值:
我有两台 Linux 机器:machine1 和 machine2
我在这些机器上有两个脚本:machine1 上的“script1”和 machine2 上的“script2”。
-
我已经完成了 ssh 设置,所以我可以在没有密码的情况下从 machine1 登录到 machine2
/opt/script1
#!/bin/sh echo "enter your name" read name ssh root@machine2 "/opt/script2 $name"/opt/script2
#!/bin/sh echo "$name" 但没有字符串正在打印
请告诉我执行此操作的程序。
【问题讨论】:
-
第一件事:将
/opt/script2更改为:echo "Name: $name"。现在,即使没有设置变量,您也应该得到一些输出。如果你没有得到任何输出,你需要追踪正在执行的内容(可能添加set -x作为/opt/script2的第一行)。如果你得到一些输出,那么你可以追踪 machine1 上发生了什么。您也可以将echo "Name: $nme"添加到/opt/script1中。是否需要运行:ssh root@machine2 sh -c "/opt/script2 $name"? -
Shebangs(第一个包含二进制解释器路径的注释行)不是没用的!即使在 SO 上,这也可能有助于格式化!
标签: shell