linux - 来自 Shell 脚本的 SSH

标签 linux shell ssh quoting

我有一个 shell 脚本,我在其中从不同主机执行 ls 命令,但我无法实现此目的。下面是我的感冒:

#!/bin/sh      
nodes="hostname1 hostname2" 
cmd="ls -ltrha"
for node in ${nodes}; do
    ssh ${node} '`$cmd`'
done

这段代码的问题是它可以完美地 ssh hostname1,但它甚至不执行 ls 命令,甚至不执行 ssh hostname2。

知道我在这里做错了什么吗?

****新编辑**** 我也尝试了下面的一个类轮,但它只执行了 ls 而没有 ssh

     ssh hostname1 'ls -ltrha'

最佳答案

#!/bin/sh      
nodes="hostname1 hostname2"
cmd="ls -ltrha"
for node in $nodes; do
    ssh "$node" "$cmd"
done

关于linux - 来自 Shell 脚本的 SSH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45399233/

相关文章:

c - 使用 fork 在进程的二叉树中进行广度优先搜索

php - PHPUnit 的问题 (Linux) - PHP fatal error

linux - 当文件夹名称包含空格时,在 bash 中打开一个文件夹

linux - 截断的核心转储有什么用?

linux - 如何在 Bash 中获取文件的绝对目录?

regex - sed 中的正则表达式不起作用

amazon-web-services - 将 key 对添加到现有 EC2 实例

ubuntu - Amazon EC2 上的权限被拒绝(公钥)并且无法访问服务器

bash - 有没有办法捕获管道命令中的失败?

ssh - 如何从 IBM Bluemix 下载日志文件?