远程机器中root用户无法执行Shell脚本命令

3
我创建了一个如下所示的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;
  ";
'

为什么不使用root账户登录到10.3.2.0开始操作? - chepner
1个回答

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;
  ";
'

否则,由qbadmin用户创建的shell将在执行su命令之前对$username和$password进行字符串插值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接