root用户不在远程计算机的shell脚本中执行命令

时间:2013-03-05 13:20:11

标签: shell

我已经创建了一个shell脚本,如下所示。但是它没有读取用户名和密码。我希望从这个脚本中获得的是以普通用户身份登录到远程计算机并登录root用户以在那里运行一些命令。

ssh -t qbadmin@10.3.2.0 '
  echo "user logined !";
  su root -c "
    echo Give username :;
    read username;
    echo Give password :;
    read password;
    echo $username;
    echo $password;
  ";
'

1 个答案:

答案 0 :(得分:3)

你需要为引号内的变量转义$

ssh -t qbadmin@10.3.2.0 '
  echo "user logined !";
  su root -c "
    echo Give username :;
    read username;
    echo Give password :;
    read password;
    echo \$username;
    echo \$password;
  ";
'

否则,由ssh命令创建的shell作为qbadmin用户将在执行$username命令之前在$passwordsu上执行字符串插值。