2014-09-22 3 views
0

어떻게하면됩니까? 내 명령에 다른 기능을 사용하고 싶습니다. 내 문제는 add.sh 함수에 인수를 전달하는 방법입니다. find.sh은 정상적으로 작동하지만 처음 두 명령은 -v/-a 옵션에 대해 no arg을 표시합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 그런 다음 이렇게 수행 view.sh 스크립트 위에 -v 옵션을 전달하려는 경우다른 기능에 대한 bash getopts 옵션

while getopts v:a:s opt 
do 
case "$opt" in 

v) ./view.sh;; 

a) ./add.sh;; 

s) ./find.sh;; 
+0

정확하게 여기에있는 질문은 무엇입니까? 당신은'getopts'에게'-v'와'-a' 옵션이 인수를 요구한다고 말했습니다. 스크립트에 인수를 전달하고 있습니까? 그렇게하면'getopts'에서 에러를 내지 말아야합니다. 당신은 또한 호출 된 함수에 그 인수 (또는 다른 인수?)를 전달하는 방법을 묻는 것 같습니다. 그것들은 매우 다른 두 가지 질문입니다. 첫 번째 부분은'getopts'가 어떻게 작동하는지 읽음으로써 부분적으로 응답합니다. 두 번째는 모든 인수를 모을 때까지 스크립트를 실행하지 않음으로써 응답됩니다. –

+0

-v 및 -a 스크립트에 인수를 전달하려고하는데 스크립트가 인수를 수신하는 것이 옳지 않은지, view.sh의 스크립트를 heres하는지 알 수 있습니다. (awk -F ";" {printf "기록 : % d \ n \ t % s \ n \ t % s \ n \ t % s, % s, % s \ n \ t % s \ n =========== =============== \ n \ n ", NR, $ 1, $ 2, $ 3, $ 4, $ 5, $ 6} '$ BOOK; echo"Q를 눌러 종료하고 메뉴로 돌아갑니다. ") | less – user3632739

+0

나는 모든 스크립트를 잘 실행할 수있는 최상위 스크립트를 가지고있다. 그러나 나는 getops로 고민 중이다. 나는 다른 모든 스크립트를 실행하기 위해 toplevel.sh 스크립트를 가지고있다. getops를위한 다른 스크립트를 만들려고하고있다. getops 스크립트가 자동으로 최상위 스크립트를 연다. 나는 아직도 그것을 배우려고 노력하고있다. 도움을 주셔서 감사합니다 – user3632739

답변

1

: 당신이 너무 view.sh에 '기타'인수를 전달하려면

while getopts v:a:s opt 
do 
    case "$opt" in 
    v) ./view.sh -v "$OPTARG";; 
    a) ./add.sh -a "$OPTARG";; 
    s) ./find.sh;; 
    esac 
done 

, 당신은 일해야 조금 더 힘들어. ./view.sh "[email protected]";;과 함께 모든 인수를 전달할 수 있지만 선택성이 더 어려워집니다.