• 쉘 프로그래밍 명령어 모음 1

    2021. 5. 4.

    by. 공상개발

     

    # 소개

     

    오늘은 쉘 프로그래밍에서 사용되는 명령어들에 대해 알아보는 시간을 가질 것입니다.

    기본적인 명령어이므로 같이 천천히 살펴봅시다.

    # 쉘 프로그래밍

     

    쉘은 라인 단위로 해석해서 처리하는 스크립트 프로그램을 말합니다.

    일반적인 언어가 가지는 특성을 대부분 가지며, 문법은 대체로 C언어와 비슷합니다.

    사용하는 쉘에 따라 조금의 차이점이 있을 수는 있겠지만 비슷한 맥락입니다.

     

    그렇다면 이제 기본적인 실습을 통해 쉘 프로그램의 작성과 실행에 접근해봅시다.

     

    1. gedit or vi와 같은 문서 편집기로 아래와 같은 내용을 prog1 파일로 작성합니다.

    파일 내용

     

    2. 생성된 쉘 프로그램 파일에 chmod 명령으로 실행 권한을 부여합니다.

    예시

     

    3. 아래와 같이 하나의 명령처럼 실행하면 정상적으로 동작합니다.

    예시

     

    # 쉘 변수

     

    다른 언어에서 변수를 사용한 것처럼 쉘에서도 변수를 사용합니다.

    이러한 변수를 쉘 변수라고 부릅니다.

    쉘 변수를 사용하기에 앞서 몇 가지 조건이 있습니다.

    1. 타입 구분이 없고 모두 문자열 형태로 값을 저장한다.
    2. 대입 기호 '='의 앞뒤에는 공백이 없어야 한다.

    만약 기호 앞에 공백이 있다면 오류를 발생합니다.

     

    쉘 변수를 사용할 때는 '$'문자를 변수 앞에 붙여야 합니다.

    '$' 기호가 생략되면 아래의 이미지와 같이 변수 var1에 저장된 값이 아니라 문자열 "var1"이 출력됩니다.

    예시

     

    # 기본 명령어 & 상식

     

    쉘 변수는 쉘이 로그아웃되면 자동으로 제거되지만, 현재 쉘에서 제거하고 싶다면 unset 명령을 사용하면 됩니다.

    예시

     

    쉘 변수에 저장된 값을 변경할 수 없게 설정할 수 있습니다. 변수 앞에 readonly 명령을 붙여주면 됩니다.

    예시

     

    변수에 인용 부호로 묶지 않은 문자열은 공백 문자를 구분자로 분리됩니다.

    아래의 이미지는 에러 메시지 예시입니다.

    예시

     

    인용부호 중에서도 이중 인용부호 " "와 단일 인용부호 ' '를 사용할 수 있는데 동일한 효과를 가집니다.

    다만, 이중 인용부호 내에 포함된 쉘 변수는 변수 값으로 대체되고,

    단일 인용부호 내에 포함된 쉘 변수는 해석되지 않습니다.

    예시

     

    echo는 출력할 문자열 내에 있는 연속적인 공백 문자를 하나의 공백 문자로 바꾸어줍니다.

    여러 개의 공백 문자를 그대로 출력하게 하려면 출력 내용을 인용부호로 묶어주면 됩니다.

    예시

     

    수식을 산술연산으로 계산하려면 let 명령을 사용하면 됩니다.

    예시

     

    # 명령 치환 & 명령 실행

     

    명령 치환이란 문자열 내에 포함된 명령 파일 이름을 실행 결과 값으로 치환하는 것을 말합니다.

    글로 풀어쓰면 무슨 내용인가 싶지만 명령어를 직접 보면 한 번에 이해가 됩니다.

    예시

    명령 치환 기호는 $(명령)입니다.

     

    명령 실행

    쉘 변수에 저장된 명령 이름을 프로그램 내에서 실행하려면 다음과 같이 파일을 작성한 후 실행시키면 됩니다.

    read 명령은 입력문입니다.

    • read 문: 표준 입력 장치에서 라인을 읽어서 변수에 저장한다.

     

    아래의 이미지는 파일 p5_2를 실행시킨 후 명령어 ls를 입력한 예시입니다.

     


     

     

    작성된 내용 중 잘못된 정보나 접근이 있을 시, www.instagram.com/hong_.98/을 통해 말씀해 주시기 바랍니다.

    좋은 하루 보내세요.

    댓글