0

我想通过 ssh 向 shell 脚本传递一个值:

  1. 我有两台 Linux 机器:machine1 和 machine2

  2. 我在这些机器上有两个脚本:machine1 上的“script1”和 machine2 上的“script2”。

  3. 我已经完成了 ssh 设置,所以我可以在没有密码的情况下从 machine1 登录到 machine2

    /opt/script1

    #!/bin/sh
    echo "enter your name"
    read name
    ssh root@machine2 "/opt/script2 $name"
    

    /选择/脚本2

    #!/bin/sh
    echo "$name"
    
  4. 但没有字符串正在打印

请让我知道执行此操作的程序。

4

3 回答 3

0

你能试试这样的脚本吗

脚本1.sh

echo "enter your name"
read name
ssh root@machine2 "/opt/script2.sh $name"

脚本2.sh

echo $1

将命令行参数传递给 shell 脚本

$0 是命令的名称

$1 第一个参数

$2 第二个参数

$3 第三个参数等

$# 参数总数

$@ 将列出所有参数

于 2013-04-08T05:54:35.667 回答
0

如果我输入我的名字作为 Rupert script1 会这样做

ssh root@machine2 "/opt/script2 Rupert"

Script2 正在寻找 $name 但它尚未在 machine2 上设置,因此脚本不会打印任何内容。

您可以将 script2 编辑为以下内容

#!/bin/sh
name=$1
echo "$name"
于 2013-04-08T09:58:06.317 回答
0

您应该将脚本 1 更改如下:

#!/bin/sh
echo "enter your name"
read name
ssh root@machine2 `/opt/script2 $name` 
于 2013-04-08T11:13:10.260 回答