0

タイトルが本当の問題を説明しているかどうかはわかりません。

load_config.shシェルを使用したシェルスクリプトがありbashます。このスクリプトは構成をロードします。構成のロードを開始する前に、ユーザーにプロンプ​​トを表示します"Do you want to load all configurations? Y/N ?"。ユーザーが「N」を選択すると、別のジョブが実行され、多くの質問が表示されます。

今、本当の問題は; 以下のように、Makefileで実行するこのスクリプトを追加しました。私の考えは、私が言うときにすべての構成をロードすることですmake installが、スクリプトはユーザーにプロンプ​​トを表示します。スクリプトにプロンプ​​トを表示させたくないので、デフォルトの「Y」を取り、すべての構成をインストールする必要があります。これを実現するにはどうすればよいですか?

.load_cfg.done : %
        @echo -e "\n* Loading configuration $<"
        $(PIN_HOME)/cfg/load_config.sh $<
        touch $@

シェル:BASH OS:LINUX

4

1 に答える 1

4

yes特定の文字列をユーザープロンプトに送信するには、コマンドを使用します。

たとえば、スクリプトが次のようになっているとします。

$ cat loadConfig.sh
#!/bin/bash
read -p "Load all configuration? " -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]
then
   echo "Loading all configuration"
else
   echo "Not loading all configuration"
fi

スクリプトにパイプyesします。

$ yes | loadConfig.sh
Loading all configuration
于 2012-05-10T07:38:11.500 に答える