我试图通过远程服务器上的bash脚本运行多个命令。特别是,要在远程服务器上运行的for循环给了我一些问题。我怀疑这是因为我不知道如何正确地转义字符或使用$()。
下面是代码。
ssh (user)@(server) <<EOF
sudo su - (username)
whoami
'for e in $(`ls -lrt /usr/jboss/jbosseap | awk '{print $9}' | grep multichannel`);
do
echo "$e";
done'
出于明显的原因删除用户名和服务器名。只需专注于for循环。当我运行for循环命令行(不带$())时,它的工作正常。只是不确定如何将其嵌套在远程呼叫中。
非常感谢您提供的所有帮助!
如果您有一个复杂的脚本要在ssh上运行,那么最好将该脚本放入文件中,然后将该文件通过管道传递到ssh中,如下所示:
cat remote_script.sh | ssh user@host
或者:
cat remote_script.sh | ssh user@host sudo -u username
现在,您不必担心N级别的转义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句