관리 메뉴

IT 컴퓨터공학 자료실

쉘 프로그래밍 기본 문법 - 출처 : OmeGa 본문

리눅스

쉘 프로그래밍 기본 문법 - 출처 : OmeGa

윤맨1 2021. 10. 25. 17:34

일반적인 프로그래밍 언어인 C언어나 파이썬도 언어마다

같은 for문을 사용하더라도 조금 다른 특징과 문법을 가지고 있듯이

쉘 프로그래밍에서도 일반적인 언어처럼 프로그램 작성이 가능하지만

비슷하면서도 조금은 다른 문법을 가지고 있습니다.



▶주석

프로그램의 기능과는 별도로 설명을 돕기 위해 사용되는 주석은

쉘 프로그래밍에서는 # 을 사용합니다.

행의 맨 앞에 #이 있으면 뒷줄은 프로그램의 실행에

아무런 영향을 끼치지 않습니다.





▶변수

모든 프로그래밍 언어에서 가장 기본이 되는 변수는

특정 데이터를 저장하는 공간으로 사용합니다.

쉘에서는 C언어와는 다르게 문자열만 변수로 사용 가능하며

변수를 사용하기 전에 변수형 선언을 할 필요가 없습니다.

(perl, python도 마찬가지)





▶변수 사용 시 주의사항

변수를 사용하고 싶다면 선언과 동시에 변수에 데이터를 대입해서 사용하면 됩니다.

변수사용 : user=test

user라는 이름의 변수를 선언함과 동시에 user에는 test라는 값이 들어가 있습니다.

"echo $<변수명>" 명령은 해당 변수에 들어있는 값을 출력합니다.

따라서, "echo $user"명령을 사용할 경우 "test"라는 값이 출력됩니다.



변수에 "="기호를 사용해서 값을 대입할 경우 공백이 있으면 안 됩니다.

ex) user = test (사용불가)

변수명은 특수문자나 숫자로 시작하면 성립되지 않습니다.

ex) 1 user=test (사용불가)






변수 사용 예시
num 변수를 선언과 동시에 10이라는 값을 대입했습니다.

echo에서 " " (큰따옴표)로 묶은 공간은 문자로 취급합니다.

여기서 변수를 쓰기 위해서는 ${변수명} 형식을 사용해야 합니다.



스크립트를 실행했을 때 "${num}"이라는 문자가 아닌,

num 변수의 값으로 불러들이는 것을 확인할 수 있습니다.





아규먼트 (Argument) 변수
위치 매개변수라고도 불리는 아규먼트 변수는 스크립트 파일을

실행할 때 같이 매개변수를 기입하면서 구분은 공백으로 합니다.

실행되는 스크립트 파일은 0번째 아규먼트가 되며 이후 공백을 기준으로

첫번째, 두 번째 아규먼트 변수가 되어 스크립트로 넘겨집니다.






아규먼트 변수의 사용
test.sh라는 이름의 파일을 실행하면서 매개변수 4개(A, B, C, D)를 공백으로

구분해서 실행했습니다. 이 때 파일명은 0번째 변수이며

A는 첫 번째, B는 두 번째 위치 매개변수가 되어

스크립트에서 불러와서 사용할 수 있습니다.



아규먼트 변수는 스크립트 실행과 동시에 변수를 전달할 때

유용하게 사용할 수 있습니다.



$0 : 실행된 스크립트명

$1 : 첫번째 아규먼트 변수

$2 : 두번째 아규먼트 변수

$# : 넘겨진 아규먼트 변수의 개수

$* : 전체 아규먼트 변수









echo문과 이스케이프(escape)문자의 사용
echo는 보통 문자나 화면에 변수나 하나의 문자를 출력하기위한

명령으로 echo $<변수명> / echo "문자" / echo `명령어`

등 여러가지 방법으로 사용할 수 있으며 2개의 옵션을 가지고 있습니다.






echo 옵션 사용 예시
echo 명령 자체에는 문자의 마지막에 개행이 포함되어 있습니다.

따라서 어떤 문자를 출력해도 개행이 추가적으로 출력되어 명령 프롬프트가

아래로 내려와 있는 것을 확인할 수 있었습니다.



echo -n 옵션은 자동으로 적용되는 개행을 생략하는 옵션입니다.

적용할 경우 문자 마지막에 나오는 개행을 생략해서

"AAA"문자 뒤에 바로 명령 프롬프트가 나오는 것을 확인할 수 있습니다.





"echo -e <문자>" : -e옵션을 사용할 경우 다른 언어의 print 함수처럼

이스케이프 문자를 사용할 수 있습니다. 예를 들어

문자를 여러 행으로 구분해서 출력하고 싶을 때 개행을 적용하거나, 문자 사이의

공백을 위해 탭 거리만큼 띄워서 출력할 수 있습니다.

(대표적인 이스케이프 문자로는 "\n (개행)", "\t (탭)" 이 있습니다.)





echo -e : 이스케이프 문자의 사용

echo -n : 마지막 줄의 개행 제거

https://www.google.com/url?sa=t&source=web&rct=j&url=https://wiseworld.tistory.com/51&ved=2ahUKEwi7t-uPj-XzAhUQiZQKHcHcA7sQFnoECEYQAQ&usg=AOvVaw0pQU-75yqHJZSG9ggOueq7