초보가 뭐좀 여쭤볼려합니다

-@Naver의 이미지

본 셸 스크립트 'asd.sh'를 만들고
$asd -l을 입력하면 ls -l 명령이 실행되도록 하고
$asd -p -l 입력하면 ls -l의 백그라운드로 실행되게 할려고 하면 어떻게 해야하나요

cmd=${1}

if ["$cmd"="-l"]; then
echo "ls -l"

이런식으로 하는데 안되네요...

김정균의 이미지

안된다고 하시면 굉장히 피상적 입니다. 모든걸 추측을 해서 답변을 해야 한다는 얘기입니다.

실행 가능한 코드를 주시는 것이 좋습니다. 추측으로나마 답변을 해 보자면 위의 코드는 아마도 "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

shell 을 제대로 공부하고 싶으시다면 https://mug896.github.io/bash-shell/ 문서를 추천 합니다.

-@Naver의 이미지

본문의 코드와 상관없이 쉘 스크립트안에 있는 명령어를 실행시키면 되는겁니다 asd.sh를 만들고 터미널에 asd -l을 입력하면 asd.sh안에 있는 명령어를 통해서 ls -l이 실행되도록 할려고하는것인데 모르겠네요

raymundo의 이미지

초보시라고 적긴 했지만, 그래도 질문하는 분이 질문을 상세하고 구체적으로 적지 않으면 답변하는 사람들이 점쟁이가 아닌 이상 제대로 답을 드릴 수도 없습니다.

"안 되네요"라고 쓰지 말고 뭘 어떻게 했는데 나는 무슨 결과를 기대했는데 실제로는 무슨 결과가 나온다(에러 메시지라거나 기대와 다른 출력 등등) 이런 걸 적어주세요.

정 질문을 어떻게 적어야 할지 모르겠으면 그냥 작성한 소스코드와, 실행을 하려 하면 무슨 출력이 나왔는지 그대로 복사해서라도 올려보시지요.

일단 제 눈에 띈 건

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 를 실행하지 않습니다.

좋은 하루 되세요!

-@Naver의 이미지

저도 문제가 제대로 설명되어있지않아서 애매모호하게 질문드린거였습니다 앞으로 좀더 구체적으로 질문 하겠습니다 성의있는 답변 감사드립니다

세벌의 이미지

문제가 제대로 설명되어 있지 않으면 문제 낸 사람에게 먼저 물어보셔야 할 듯.

익명 사용자의 이미지

ls -al 을 백그라운드로 실행 하는게 문슨 의미가 있는지는 모르겠고..

아무튼 의도 하는게 이거 맞나요?

#!/bin/bash
cmd=${1}
 
if [ "$cmd" == "-l" ]
then
 ls -l
fi

-@Naver의 이미지

네 맞습니다 감사합니다

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.