通过ssh登录时,我无法使用几个sudo命令。我正在使用以下命令,但无法正常工作。
ssh hypr1000.opsr.com“ ot = sudo virsh列表--all | grep running | awk'{print $ 2}'| tail -2; sudo virsh dominfo $ ot”
这是返回的错误消息:
error: command 'dominfo' requires <domain> option
我应该怎么做才能使此命令成功运行?
您基本上在跑步ssh host "var=value; echo $var"
。Shell会在ssh
接收到命令之前执行变量扩展。因此,接收到的实际命令ssh
变为:
var=$value; echo
为了避免外壳吃掉您的美元,请使用单引号:
ssh host 'var=value; echo $var'
考虑到您的命令,您似乎在尝试在最后一个命令中使用一个命令的输出。为了使它成功,您必须正确使用命令替换:
ssh host'output = $(sudo virsh list --all | awk“ / running / {print \ $ 2}” | tail -2); sudo virsh dominfo $输出'
甚至:
ssh host'sudo virsh dominfo $(sudo virsh list --all | awk“ / running / {print \ $ 2}” | tail -2)'
假定sudo
已配置为不要求输入密码,否则您将收到以下错误消息:
sudo: no tty present and no askpass program specified
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句