본문 바로가기
리눅스공부/셸 스크립트 프로그래밍

[프로그래밍] 셸 스크립트 변수 / 셸 프로그래밍 변수/ 리눅스 셸 스크립트 프로그래밍 변수의 입력과 출력

by 으노으뇨 2022. 12. 20.
728x90
반응형
SMALL

변수

셸변수는 필요한 값을 계속 변경해 저장한다는 개념이다.

셸 스크립트의 구조는 변경할 필요가 없는데, 설정해야하는 값이 상황에 따라 다르다면,

변수에 필요한 값을 계속 바꿔가는 방법으로 프로그래밍 해서 다양한 상황에서 대처 할 수 있다.


변수의 기본

셸 스크립트에서는 변수를 사용하기 전에 미리 선언하지 않으며, 처음 변수에 값이 할당 되면 자동으로 변수가 생성된다
  • 변수에 넣는 모든 값은 문자열로 취급한다. 즉 숫자를 넣어도 문자로 취급한다.
  • 변수 이름은 대소문자를 구분한다. 즉 $aa라는 변수 이름과 $AA라는 변수 이름은 다르다.
  • 변수를 대입할 때 ' = '  좌우에는 공백이 없어야 한다.
testVal = Hello	->오류!!(' = ' 앞뒤에 공백이 있다.)
testVal=Hello	-> OK

testVal=Yes Sir	-> 오류!! 값의 공백은 ""로 묶어야 한다.
testVal="Yes Sir"	->OK
testVal=7+5	->정상이지만, "75+"라는 문자열로 인식한다.

testVal로 변수를 선언하고 호출한 모습
띄어쓰기 오류 예문을 통핸 모습, 띄어쓰기있으면 큰따옴표로 묶어서 쓰자!
7+5가 계산되지않고 문자열로 나온 모습


변수의 입력과 출력

' $ ' 라는 문자가 들어간 글자를 출력하려면 ' ' 로 묶거나 ' \ ' 를 붙여야 한다. 

또한 " " 로 변수를 묶어도 되고, 묶지 않아도 된다.

예시를 위해서 새로 스크립트 하나 생성
작성
저장하고 실행시킨 모습

소스설명

  • 3행 : Hi Kim 하고 정상적으로 출력한다.
  • 4행 : 3행과 동일하다.
  • 5행 : $myVar 라는 글자를 출력한다.
  • 6행 : \$는 $를 글자로 취급하게 한다. 결국 5행과 동일한 효과다.
  • 8행 : 변수 myVar에 키보드로 값(문자열) 을 입력한다.

* $변수와 "$변수"는 일반적으로 동일하게 인식한다. 하지만 변수에 입력된 값에 공백이 포함될 수 있다면, "$변수" 형식으로 사용하는 것이 공백 때문에 발생 할 수 있는 논리 오류를 방지하는데 더 도움이 될 것이다.


숫자 계산

변수에 넣은 값은 모두 문자열로 취급한다고 했다.

만약 변수에 들어 있는 값에 +,-,*,/등의 연산을 하려면 expr 키워드를 사용해야한다.

단 수식과 함꼐 꼭 키보드 숫자 1왼쪽에 있는 역따옴표 ()로 묶어줘야한다.

그리고 수식에 괄호를 사용하려면 그 앞에 꼭 역슬래시 \ 를 붙여야한다.

또 +,-,/ 와 달리 곱하기 * 기호는 예외적으로 앞에 역슬래시를 붙여야한다.

새로 숫자계산을 위한 파일 생성
작성
실행한 결과, 숫자 모두 정상적으로 인식되어서 계산이 되었다.

소스설명

  • 3행 : 문자열로 취급한다.-> 모두 붙여서 써줘야 한다.
  • 5행 : 숫자로 취급해서 계산한다. -> 각 단어마다 띄어쓰기를 해야한다.
  • 7행 : 괄호와 * 앞에는 역슬래시 ( \ ) 를 붙인다.

파라미터 변수

파라미터 변수는 $0 $1 $2 등의 형태를 가진다. 

즉, 명령어에 포함된 모든 단어를 각자 $변수 형식으로 지정한다.

예를 들어 apt -y install gftp 명령을 실행한다고 가정하면, 파라미터 변수는 다음과 같이 지정할 수 있다.

명령 apt -y install gftp
파라미터 변수 $0 $1 $2 $3

즉 $0에는 apt를, $1 에는 -y를 저장한다. 또 명령 전체으 ㅣ파라미터 변수는 $*로 표현한다.

새로운 파일 생성
작성완료
파일을 생성하고 최초 호출할때는 파라미터를 아무것도 안넣은 모습, 그리고 두번째는 파라미터에 값을 모두 채워서 호출한 모습이다.

 

728x90
반응형
LIST

댓글