shell script에서 명령어에 따른 실행하는법 알려주세요 ㅠ
글쓴이: jin24512 / 작성시간: 목, 2011/12/01 - 11:52오전
제가 wget으로 파일을 받아서 실행을 하고 로그파일을 남기는 것까지 공부를 했는데요...
sh파일을 실행할때(shell.sh),
#./shell.sh ab 를 실행하면 ab에 해당하는 스크립트안의 명령이 실행되고,
#./shell.sh cd 를 실행하면 cd에 해당하는 스크립트안의 명령이 실행되게 하려고하는데..
인자값 설정을 하라는 글을 봤는데...도저히 알수가 없네요 ㅠㅠ
어떻게 하는지 조언좀 부탁드립니다 ㅠ
예제를 주셔도 감사하구요! 예저 보고서 공부할께요!!!
Forums:
cmd=$1 if [ "$cmd" = "ab"
cmd=$1
if [ "$cmd" = "ab" ];then
# ab에 해당하는 명령
elif [ "$cmd" = "cd" ];then
# cd에 해당하는 명령.
fi
#ab에 해당하는 명령
"$cmd" = "ping 11.11.11.11" 이런식으로 명령어를 넣는건가요? ㅠㅠ
아니면 cmd=$1 이부분을 바꺼주는건가요? ㅠㅠ
잘 안되네요 ㅠㅠ ping으로 바꺼 봤는데 ㅠㅠ
cmd="ping
이렇게 하면 됩니다.
외부에서 받은 명령어를 실행하고 싶을때는
이렇게 하면되고요..
심지어
이렇게만 해도 될겁니다.
쉘스크립트를 할때는, 공백이나, 따옴표도 유심히 봐야합니다.
앗 감사합니다.!!!
아아...ㅠㅠ
#!/bin/bash
cmd="ping 192.168.10.12"
if ["$cmd"="ab"];then
elif ["$cmd"="cd"];then
fi
제가 한번 바꺼는 봐는데요 이런식으로 하는게 아니였던가요? ㅠㅠ
ab는 10.12번을 핑을 보내고 cd는 200번으로 핑을 보내고 싶은뎅...
쉽지가 않네요 ㅠㅠ
#!/bin/bash cmd=$1 if
오류가 나요 ㅠㅠ
#./shell.sh ab
./inza.sh: line 5: [ab=ab]: command not found
./inza.sh: line 7: [ab=cd]: command not found
이런식으로 나오네요 ㅠㅠ
같은 코드를 적용해는데도 왜이러죠? ㅠㅠ
자세히 알려주시는데 이해 못해서 죄송합니다..ㅠㅠ
미리 말씀드린대로 공백을 주의 깊게 보셔야합니다..
미리 말씀드린대로 공백을 주의 깊게 보셔야합니다..
감사합니다!!
공백을 주의깊게(?) 써넣었더니...
오류 메세지는 없어졌는데요.....
음..명령어 넣어논게 실행을 안하는건지 아무것도 출력이 돼질 않네요 ㅠㅠ
여기서 부터 다시 고민해 보겠습니다! 감사합니다!!!
./a.sh a b c 이렇게 실행을
./a.sh a b c
이렇게 실행을 시키면
스크립트 내부에서
a b c 순서대로
$1 $2 $3 변수로 참조할 수 있어요.
지금 보니까... 다른 분이 cmd=$1 이렇게
지금 보니까... 다른 분이
이렇게 답을 알려주셨는데, 왜 이걸 자꾸
이렇게 바꾸시나요?
$1 이게 이 자체로 변수의 이름입니다. 실행할 때 실행스크립트 이름 뒤에 따라오는 인자 (명령행 인자라고 부르는) 중에 첫번째 인자가 $1, 두번째 인자가 $2, 이런 겁니다.
따라서
이렇게 실행을 하면 shell.sh 안에서는 $1에 "ab"라는 문자열이 들어간다는 얘기죠.
좋은 하루 되세요!
댓글 달기