简体   繁体   English

用于登录远程 VM 并从远程 VM 运行命令的 Shell 脚本

[英]Shell script to login to remote VM and run commands from remote VM

I need to login to a remote VM and run some commands.我需要登录到远程虚拟机并运行一些命令。 I am able to login successfully but echo command does not return list of files from the remote VM instead it returns output from local machine.我能够成功登录,但 echo 命令不会从远程 VM 返回文件列表,而是从本地计算机返回输出。 Can anyone suggest how can I achieve this?谁能建议我怎样才能做到这一点?

ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no root@$1<<EOF
cd /var;
echo "$(ls)";
EOF
exit

It worked after removing echo.它在消除回声后起作用。 PFB solution: PFB解决方案:


    ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no root@$1 << EOT
    cd /var;
    ls -ltr;
    EOT
    exit

You have to escape $ in EOF sequence like this:您必须像这样在EOF序列中转义$

ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no root@$1<<EOF
cd /var;
echo "\$(ls)";
EOF

Or escape whole EOF sequence like this:或者像这样转义整个 EOF 序列:

ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no root@$1<<'EOF'
cd /var;
echo "$(ls)";
EOF

alternatively, if you quote the marker, then substitution doesn't take place in the local shell:或者,如果您引用标记,则替换不会在本地 shell 中发生:

ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no root@$1<<'EOF'
cd /var;
echo "$(ls)";
EOF
exit

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM