신비한 개발사전

리눅스 기본 명령어 빠른 복습 본문

카테고리 없음

리눅스 기본 명령어 빠른 복습

jbilee 2025. 6. 6. 00:25

echo

명령어 다음에 입력하는 내용을 그대로 반환하는 것이 기본 동작이다.

 

파일에 컨텐츠를 넣을 때에도 echo를 사용할 수 있다.

  • echo ${컨텐츠} > ${파일}
    • 명시한 파일의 내용을 컨텐츠로 채운다. 해당 파일에 이미 컨텐츠가 있었을 경우, 모두 새 내용으로 덮어쓰기 된다.
  • echo ${컨텐츠} >> ${파일}
    • 기존 컨텐츠는 두고 새 줄에 내용을 덧붙인다.

⚠ 만약 echo를 사용해 #!/bin/sh 실행 명령어를 스크립트 파일에 추가하려고 할 경우 큰 따옴표(")가 아닌 작은 따옴표(')를 써야 한다. 큰 따옴표를 쓸 경우 바로 /bin/sh를 실행시켜버린다.

  • echo '#!/bin/sh' > deploy.sh

Shell scripting 언어에서 큰 따옴표는 특수문자를 해석할 여지를 준다. 반대로 작은 따옴표 안에 있는 것들은 전부 "as-is"로 해석되기 때문에, #!/bin/sh 같은 명령어가 실제로 실행되지 않는 것이다.

 

변수 할당 및 사용

등호(=)를 사용해 왼쪽 변수명에 오른쪽 내용을 할당한다.

  • MY_VARIABLE=10
  • name=Bob

변수에 저장되는 값은 기본적으로 문자열로 인식되는데, 이때 저장하려는 문자열에 띄어쓰기가 있으면 띄어쓰기 이후의 내용을 다른 명령어로 인식하게 된다. 따라서 띄어쓰기가 포함된 문자열을 저장하고 싶으면 따옴표를 사용해야 한다.

echo 명령어로 변수에 저장된 값을 읽을 수 있다.

expr

기본적인 연산 작업(+, -, *, /, %)을 할 때 사용한다. expr 명령어를 쓰면 변수에 저장돼 있는 값을 숫자로 처리한다. 따옴표로 명시적으로 문자열로 저장한 경우에도 숫자로 파싱한다. 대신 정수만 연산할 수 있다.

  • expr 1 + 2
  • expr $a - $b
  • expr $c '*' 10
    • ❗ 곱하기(*)의 경우 작은 따옴표로 감싸서 사용하지 않으면 명령어로 인식하게 된다.

 

조건부(test)

Shell 스크립팅에서는 if문 같은 조건절을 test라고 부른다. [ ] 안에 시험할 조건을 넣어 if문과 비슷한 문법의 커맨드를 작성할 수 있다. 조건부의 끝을 명시해주기 위해 마지막에 "fi"를 추가해줘야 한다.

if [ "bob" = "bob" ]
then
  echo "이름 일치"
else
  echo "이름 불일치"
fi

 

스크립트 실행 결과:

 

if와 then문은 각각 다른 line에 써줘야 하지만, 세미콜론으로 구분하면 같은 line에 작성할 수 있다.

if [ "bob" = "bob" ]; then
  echo "이름 일치"
elif [ 2 = 2 ]; then
  echo "숫자 일치"
else
  echo "불일치"
fi