2014-04-02 5 views
2

그래서 간단한 bash 프로그램을 가지고 놀고 있습니다. 쉘과 bash의 기초를 배우기 만하면됩니다. 이 아이디어는 암호를 .txt 파일에 저장하는 작은 암호 생성기입니다. 명심,이 쉘 스크립트를 배울 단순히 무언가이다 - 물론 전제가함수 내에서 쉘 매개 변수에 액세스하기

예를 들어, 나는를 생성하는 것이다

./script.sh facebook generate 

을 쓸 수 있도록하려면 안전하지 않은 :) 이해 간단한 문자열을 입력 한 다음 확인하면 암호와 사이트 이름을 .text 파일에 저장하십시오.

어쨌든, 내가 겪고있는 문제는 다음과 같습니다. 텍스트를 txt 파일 (아래 참조)에 에코하고있는 행에서 $ 1 및 $ 2 매개 변수를 검색 할 수 없습니다. 나는 내가 일할 수없는 선에 대해 의견을 말했습니다. 방금 .txt 파일에 공백이 생깁니다.

어쨌든 함수 내부의 매개 변수에 액세스하는 데 도움이되는 지침이 있습니까? 같은 방법으로 함수에 매개 변수를 전달할 수 있기 때문에

function generate() { 
    PASS="9sahdoasndkasnda89zls" 
    echo $PASS 
} 

function storeConfirm() { 
    /bin/echo -n "Do you want to store this password? Y/N " 
    read answer 
     if [ "$answer" == "Y" ] 
      then 
       echo "--------" >> pwstore.txt; 
       echo $1 "=" $2 >> pwstore.txt; #This line doesn't work, can't seem to access the $1 and $2 params 
       echo "Successfully stored for you" 
      else 
       echo "Ok... have it your way" 
     fi 
} 

if [[ $2 == "generate" ]]; then 
    generate 
    echo "for site=" $1 
    storeConfirm 
fi 
+0

왜 함수 매개 변수로 전달할 수 없습니까? http://stackoverflow.com/questions/6212219/passing-parameters/to-a-bash-function – alinoz

+0

내가 할 수있을 것 같아 - 입력에 대한 감사 @ alinoz – user2656127

답변

4

당신은 스크립트 매개 변수가 함수에 "전달"얻을 수 있는지 확인해야 스크립트에 매개 변수를 전달할 수 있습니다. 다른 말로하면 - 함수는 자체 "매개 변수 범위"를가집니다. 예 :

$ cat script 
#!/usr/bin/env bash 

_aFunction(){ 
    echo "Parameter 1: ${1}" 
    echo "Parameter 2: ${2}" 
} 

_aFunction 
_aFunction "$1" "$2" 
_aFunction One Two 

$ ./script 1 2 
Parameter 1: 
Parameter 2: 
Parameter 1: 1 
Parameter 2: 2 
Parameter 1: One 
Parameter 2: Two 
+0

큰 작품, 고마워 :) – user2656127

+0

당신은 환영합니다! 그것이 당신을 도운다면 대답을 수락하는 것을 고려하십시오. :) – Saucier

+0

완료 :) 셸 스크립팅 여행 계속 : – user2656127

관련 문제