sudo -s [duplicate]以降はどうなりますか?

sudo -s [duplicate]以降はどうなりますか?

初めてシェルに触れました。

私は非常に基本的なスクリプトを書いています。

#!/bin/bash
example()
{

    echo "Code that don't need sudo."
    sudo -s 
    echo "Code that need sudo"
 }

example

このスクリプトを実行した後、次のことを期待します。

  1. 早くCode that don't need sudo.

  2. シェルが私にパスワードを尋ねる

  3. パスワードが正しい場合はプロンプトCode that need sudo.

ただし、正しいパスワードを入力してもプロンプトは表示されません。Code that need sudo.理由と回避策は何ですか?

ベストアンサー1

sudo -sこれは、ルートシェルが起動してパスワードを入力すると、このシェルで自分自身を見つけることができるためです。その後、シェルを終了すると次のようになりますCode that need sudo

$ foo.sh
Code that don't need sudo.
[sudo] password for terdon: 
[root@tpad terdon]# exit
Code that need sudo

通常、すべてのスクリプトでコマンドを実行するように指示すると、コマンドが完了した後にのみスクリプトが実行され続けます。したがって、スクリプトが起動したら、sudo -s続行する前にスクリプトが完了するのを待ちます。これがすぐに実行exit(または+押す)ctrl後にテキストが印刷される理由ですD

おすすめ記事