1

不管为什么,我都在尝试编写一个脚本,让我可以向各个地址发送命令。用户有一个共享密钥,因此无需登录。但这不起作用。

因此,以下将不起作用...

#!/bin/bash
ip=$1
shift
args="'$@'"
cmd="ssh user@$ip -C $args"
output=$($cmd)

如果我使用以下命令执行它:

./myscript.sh 10.0.1.2 /bin/ls -l /var

我收到“ls -l /var:没有这样的文件或目录”的错误

如果我运行该命令(ssh user@10.0.1.2 -C '/bin/ls -l /var'),它工作正常。

我究竟做错了什么?这些是相同的 RHEL6 安装。

4

1 回答 1

0

显然,引号使 bash 感到困惑。以下作品...

ip=$1
shift
$(ssh -o ConnectTimeout=1 User@$ip "$@")
于 2015-03-17T20:11:50.693 回答