web-dev-qa-db-ja.com

bashスクリプトの実行時に自動確認しますか?

私は新しいサーバーを私が望むように設定するシンプルなbashスクリプトに取り組んでいます。これは特別なことではありませんが、将来的にはかなりの時間を節約できることを願っています。

このようなプロンプトを防ぐにはどうすればよいですか:

  You are about to add the following PPA to your system:
    Stable version of nginx.
    More info: https://launchpad.net/~nginx/+archive/stable
  Press [ENTER] to continue or ctrl-c to cancel adding it

スクリプトから次のようなコマンドを実行する場合:

  Sudo add-apt-repository ppa:nginx/stable 
  Sudo apt-get update
  Sudo apt-get -y install nginx

設定できる自動受け入れフラグなどがありますか?

10
dannymcc

add-apt-repositoryには、使用できる-yフラグがあります。

サーバーを構成するためのpuppetやchefなどの構成管理システムを検討することをお勧めしますが。彼らはあなたに多くの時間を節約します!

23

これがyesが書かれたものであることはおそらく注目に値するでしょう。デフォルトではyを繰り返し出力しますが、yes <string>は代わりに「string」を繰り返します。

次のような一連の応答が表示された場合:

Press [ENTER] to continue or ctrl-c to cancel adding it

次のようなことができます:

yes '' | Sudo add-apt-repository ppa:nginx/stable

プロンプトごとに自動的にエンターを入力する。 apt-add-repositoryには-yオプションがあるため、それを使用する必要がありますが、そのオプションを持たないスクリプトに遭遇した場合は、yesを使用できます。

13
Erik