我的脚本如下。
#!/bin/bash
version = 1.1
echo "Enter username"
read UserName
ssh -t $UserName@server bash -c " '
./runSomeScript
echo "Entering Sudo"
sudo -s -u user1 -c "cd random; ./randomscrip xx-$version-yy"
'"
但这不起作用。
基本上我想对一个帐户进行ssh。然后运行SomeScript 然后使用user作为user1执行sudo,然后运行命令cd random和./randomscrip(以xx-Version-yy作为参数)仅作为sudo用户。 但是sudo中的命令不起作用。
答案 0 :(得分:2)
你的报价有点粗心。你在引用的第一和第三级使用双引号,而shell不能告诉另一个引用。做这样的事情:
sudoScript="cd random; ./randomscrip xx-${version}-yy"
sshScript='
./runSomeScript
echo "Entering Sudo"
sudo -s -u user1 bash -c '"'${sudoScript}'"'
'
ssh -t ${UserName}@server "${sshScript}"
但请注意,如果你嵌入任何单引号,除非你添加一层shell引用,否则它仍然会出错。
最后,在分配到=
时删除version
周围的空格。