3

以下のようなシェルスクリプトを作成しましたが、ユーザー名とパスワードを読み取っていません。このスクリプトから期待しているのは、通常のユーザーとしてリモートマシンにログインし、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;
  ";
'
4

1 に答える 1

3

$引用符内の変数の 'sをエスケープする必要があります。

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それ以外の場合、 qbadmin ユーザーとしてコマンドによって作成されたシェルは、コマンドを実行する前に文字列補間$usernameを実行します。$passwordsu

于 2013-03-05T18:24:46.843 に答える