2012-05-10 7 views
0

タイトルが実際の問題を説明しているかどうかはわかりません。デフォルトパラメータでシェルスクリプトを実行する方法

私はbashシェルを使用してシェルスクリプトload_config.shを持っています。このスクリプトは設定を読み込みます。構成のロードを開始する前に、ユーザーに"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 [email protected] 

シェル:BASH OS:LINUX

答えて

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 
+0

これは動作します!ありがとう、トン。 – dicaprio

関連する問題