안된다고 하시면 굉장히 피상적 입니다. 모든걸 추측을 해서 답변을 해야 한다는 얘기입니다.
실행 가능한 코드를 주시는 것이 좋습니다. 추측으로나마 답변을 해 보자면 위의 코드는 아마도 "command not found" 에러가 발생 했을 겁니다.
shell script 의 test 문에서 "[" 는 실제 command 입니다. "[" 는 /bin/[ 를 실행하게 되는 겁니다. 그런데 "["$cmd"="-l"]" 처럼 적었으니 "["$cmd"="-l"]" 라는 명령어를 찾게 될 거고, 당연히 이런 명령어는 없겠죠.
"if [" 는 "if test" 와 동일 합니다. 그러로 제대로 구현을 하려면 아래외 같이 띄어쓰기에 주의해야 합니다.
cmd=$1
if [ "${cmd}" = "-l" ]; then
echo "ls -l"
fi
위의 코드는 다음과도 동일 합니다.
cmd=$1
if test "${cmd}" = "-l"; then
echo "ls -l"
fi
초보시라고 적긴 했지만, 그래도 질문하는 분이 질문을 상세하고 구체적으로 적지 않으면 답변하는 사람들이 점쟁이가 아닌 이상 제대로 답을 드릴 수도 없습니다.
"안 되네요"라고 쓰지 말고 뭘 어떻게 했는데 나는 무슨 결과를 기대했는데 실제로는 무슨 결과가 나온다(에러 메시지라거나 기대와 다른 출력 등등) 이런 걸 적어주세요.
정 질문을 어떻게 적어야 할지 모르겠으면 그냥 작성한 소스코드와, 실행을 하려 하면 무슨 출력이 나왔는지 그대로 복사해서라도 올려보시지요.
일단 제 눈에 띈 건
1) 파일 이름이 asd.sh 면 실행도 asd.sh, 게다가 PATH 지정을 따로 하지 않았다면 asd.sh 가 있는 디렉토리까지 적어주어야 합니다. 보통은 현재 디렉토리에 있는 스크립트를 실행할 테니 ./asd.sh 라고 쓰겠지요. 윈도우에서는 확장자 .com 이나 .exe 는 생략하고 쓸 수 있지만 리눅스는 안 됩니다. 그냥 asd 라고 적었다고 asd.sh 가 알아서 실행되지 않습니다.
2) 실행 퍼미션은 주셨나요?
3) ls -l 이 실행되길 원하면 스크립트 안에도 ls -l 이라고만 적으면 됩니다. echo "ls -l" 이건 화면에 "ls -l"이라는 문자열을 출력할 뿐이지 ls 를 실행하지 않습니다.
안된다고 하시면 굉장히 피상적 입니다. 모든걸 추측을
안된다고 하시면 굉장히 피상적 입니다. 모든걸 추측을 해서 답변을 해야 한다는 얘기입니다.
실행 가능한 코드를 주시는 것이 좋습니다. 추측으로나마 답변을 해 보자면 위의 코드는 아마도 "command not found" 에러가 발생 했을 겁니다.
shell script 의 test 문에서 "[" 는 실제 command 입니다. "[" 는 /bin/[ 를 실행하게 되는 겁니다. 그런데 "["$cmd"="-l"]" 처럼 적었으니 "["$cmd"="-l"]" 라는 명령어를 찾게 될 거고, 당연히 이런 명령어는 없겠죠.
"if [" 는 "if test" 와 동일 합니다. 그러로 제대로 구현을 하려면 아래외 같이 띄어쓰기에 주의해야 합니다.
위의 코드는 다음과도 동일 합니다.
shell 을 제대로 공부하고 싶으시다면 https://mug896.github.io/bash-shell/ 문서를 추천 합니다.
본문의 코드와 상관없이 쉘 스크립트안에 있는 명령어를
본문의 코드와 상관없이 쉘 스크립트안에 있는 명령어를 실행시키면 되는겁니다 asd.sh를 만들고 터미널에 asd -l을 입력하면 asd.sh안에 있는 명령어를 통해서 ls -l이 실행되도록 할려고하는것인데 모르겠네요
초보시라고 적긴 했지만, 그래도 질문하는 분이 질문을
초보시라고 적긴 했지만, 그래도 질문하는 분이 질문을 상세하고 구체적으로 적지 않으면 답변하는 사람들이 점쟁이가 아닌 이상 제대로 답을 드릴 수도 없습니다.
"안 되네요"라고 쓰지 말고 뭘 어떻게 했는데 나는 무슨 결과를 기대했는데 실제로는 무슨 결과가 나온다(에러 메시지라거나 기대와 다른 출력 등등) 이런 걸 적어주세요.
정 질문을 어떻게 적어야 할지 모르겠으면 그냥 작성한 소스코드와, 실행을 하려 하면 무슨 출력이 나왔는지 그대로 복사해서라도 올려보시지요.
일단 제 눈에 띈 건
1) 파일 이름이 asd.sh 면 실행도 asd.sh, 게다가 PATH 지정을 따로 하지 않았다면 asd.sh 가 있는 디렉토리까지 적어주어야 합니다. 보통은 현재 디렉토리에 있는 스크립트를 실행할 테니 ./asd.sh 라고 쓰겠지요. 윈도우에서는 확장자 .com 이나 .exe 는 생략하고 쓸 수 있지만 리눅스는 안 됩니다. 그냥 asd 라고 적었다고 asd.sh 가 알아서 실행되지 않습니다.
2) 실행 퍼미션은 주셨나요?
3) ls -l 이 실행되길 원하면 스크립트 안에도 ls -l 이라고만 적으면 됩니다. echo "ls -l" 이건 화면에 "ls -l"이라는 문자열을 출력할 뿐이지 ls 를 실행하지 않습니다.
좋은 하루 되세요!
저도 문제가 제대로 설명되어있지않아서 애매모호하게
저도 문제가 제대로 설명되어있지않아서 애매모호하게 질문드린거였습니다 앞으로 좀더 구체적으로 질문 하겠습니다 성의있는 답변 감사드립니다
문제가 제대로 설명되어 있지 않으면 문제 낸 사람에게
문제가 제대로 설명되어 있지 않으면 문제 낸 사람에게 먼저 물어보셔야 할 듯.
세벌 https://sebuls.blogspot.kr/
ls -al 을 백그라운드로 실행 하는게 문슨 의미가
ls -al 을 백그라운드로 실행 하는게 문슨 의미가 있는지는 모르겠고..
아무튼 의도 하는게 이거 맞나요?
네 맞습니다 감사합니다
네 맞습니다 감사합니다
댓글 달기