2012-05-10 6 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

관련 문제