쉘 프로그래밍 [변수]
작성자
heukchoo
작성일
2021-01-17 23:53
조회
304
프로그래밍을 하려면 맨 처음 알아야 할것이 변수 사용법이다.
변수는 이름 그대로 변하는 수이며, 값을 담는 상자라 생각하면 편하다.
C언어의 경우 정수, 실수, 문자, 문자열 등의 각 타입을 구분하여 변수를 지정하지만 쉘에서는 타입의 구분없이 지정할 수 있어 편하다.
변수의 지정 방법은 다음과 같다.
(val 앞의 $는 프롬프트이다.)
var는 변수명이다. 변수명은 한글을 제외하고 영문자, 숫자, 기호 등으로 아무렇게 지으면된다.
다만 지정할 수 없는 명명 규칙이 있는데 굳이 외울 필요는 없다.
억지로 이상하게 명명하지 않는한 문제 생기지 않는다.
지정된 변수의 값을 출력하는 것은 다음과 같다.
echo는 콘솔에 문자를 출력하는 명령이다.
변수명 앞에 달러($)를 붙이면 변수명을 사용할 수 있다.
변수명을 중괄호로 묶어서 사용할 수도 있다.
중괄호는 위 예시와 같이 변수명을 다른 문자와 구분할때 사용한다.
만일 중괄호를 사용하지 않으면 컴퓨터는 varchoo를 변수명으로 인식한다.
변수 값을 다음과 같이 제어할 수도 있다.
(#은 주석이다.)
더 많은 방법이 있지만 이정도면 충분할 것이다.
다음은 매개변수를 사용하는 방법이다.
매개변수는 스크립트 실행시 입력 받는 값을 저장한다.
#!/bin/bash는 bash 쉘로 작성된 스크립트임을 나타낸다.
스크립트
$1과 같이 달러와 숫자로 매개변수를 지정하여 사용할 수 있다.
샾(#)은 입력되는 값의 개수이다.
위와 같이 스크립트 실행시 값을 입력하면 매개변수에 순서대로 값이 저장된다.
다음은 변수가 얼마나 쓸모 있는지 보자.
스크립트
위 스크립트는 각 행의 출력결과를 파일명.dat 파일로 저장한다.
만일 스크립트 내의 '파일명.dat'을 다른 파일명으로 바꾸려고 한다면 일일히 파일명을 수정해야 할 것이다.
(수십개의 라인을 매번 수정한다 생각해보자 -_-;)
물론 텍스트 편집기의 일괄 바꾸기 기능을 쓸수도 있지만, 내용 중 파일명과 동일한 문자가 있는 경우 잘못 수정할 우려도 있다.
다음은 변수를 사용한 경우이다.
스크립트
위 스크립트에서는 '파일명.dat'을 output 변수에 입력하고 각 행의 결과를 저장할 파일명을 output 변수로 대체 하였다.
실행하면 변수값으로 지정한 '파일명.dat' 파일에 각 행의 실행결과를 저장한다.
파일명을 수정할 때는 output 변수에 입력되는 파일명만 수정하면 된다.
다음은 명령어 실행 결과를 변수에 저장하는 방법이다.
위와 같이 두 가지 방법이 있다.
var1의 그레이브(`)는 키보드의 물결 아래 문자이다.(작은 따옴표가 아님)
두 방법 모두 echo 명령어도 출력한 문자를 변수에 저장했다.
echo 외에도 다양한 명령어 실행 결과를 저장할 수 있어서 프로그래밍에 꽤 사용된다.
마지막으로 변수 사용 시 참고사항이다.
변수를 큰따옴표(" ")로 묶을 경우 컴퓨터는 변수를 인지한다.
작은따옴표(' ')로 묶을 경우 컴퓨터는 문자로 인지한다.
변수 사용 시 이를 주의해야 한다.
변수 사용은 프로그래밍의 시작이다.
변수는 이름 그대로 변하는 수이며, 값을 담는 상자라 생각하면 편하다.
C언어의 경우 정수, 실수, 문자, 문자열 등의 각 타입을 구분하여 변수를 지정하지만 쉘에서는 타입의 구분없이 지정할 수 있어 편하다.
변수의 지정 방법은 다음과 같다.
(val 앞의 $는 프롬프트이다.)
$val=값 |
var는 변수명이다. 변수명은 한글을 제외하고 영문자, 숫자, 기호 등으로 아무렇게 지으면된다.
다만 지정할 수 없는 명명 규칙이 있는데 굳이 외울 필요는 없다.
억지로 이상하게 명명하지 않는한 문제 생기지 않는다.
지정된 변수의 값을 출력하는 것은 다음과 같다.
$var=heuk $echo $var heuk $echo ${var}choo heukchoo |
echo는 콘솔에 문자를 출력하는 명령이다.
변수명 앞에 달러($)를 붙이면 변수명을 사용할 수 있다.
변수명을 중괄호로 묶어서 사용할 수도 있다.
중괄호는 위 예시와 같이 변수명을 다른 문자와 구분할때 사용한다.
만일 중괄호를 사용하지 않으면 컴퓨터는 varchoo를 변수명으로 인식한다.
변수 값을 다음과 같이 제어할 수도 있다.
(#은 주석이다.)
#변수지정 $var=oobcoodfoo #변수값의 문자수 출력 $echo ${#var} 10 #변수값의 3번째 문자부터 출력(0번째부터 카운트) $echo ${var:3} coodfoo #변수값의 3번째부터 4개의 문자 출력 $echo ${var:3:4} cood #변수값의 첫번째 oo문자를 xx로 치환 $echo ${var/oo/xx} xxbcoodfoo #변수값의 모든 oo문자를 xx로 치환 $echo ${var//oo/xx} xxbcxxdfxx #변수값의 시작 문자가 oo이면 xx로 치환 $echo ${var/#oo/xx} xxbcoodfoo #변수값의 종료 문자가 oo이면 xx로 치환 $echo ${var/%oo/xx} oobcoodfxx |
더 많은 방법이 있지만 이정도면 충분할 것이다.
다음은 매개변수를 사용하는 방법이다.
매개변수는 스크립트 실행시 입력 받는 값을 저장한다.
#!/bin/bash는 bash 쉘로 작성된 스크립트임을 나타낸다.
스크립트
#!/bin/bash echo “첫번째 두번째 매개변수: $1 $2” |
$./스크립트파일.p aaa bbb ccc 첫번째 두번째 매개변수: aaa bbb ccc 3 |
$1과 같이 달러와 숫자로 매개변수를 지정하여 사용할 수 있다.
샾(#)은 입력되는 값의 개수이다.
위와 같이 스크립트 실행시 값을 입력하면 매개변수에 순서대로 값이 저장된다.
다음은 변수가 얼마나 쓸모 있는지 보자.
스크립트
#!/bin/bash echo “내용1” > 파일명.dat |
위 스크립트는 각 행의 출력결과를 파일명.dat 파일로 저장한다.
만일 스크립트 내의 '파일명.dat'을 다른 파일명으로 바꾸려고 한다면 일일히 파일명을 수정해야 할 것이다.
(수십개의 라인을 매번 수정한다 생각해보자 -_-;)
물론 텍스트 편집기의 일괄 바꾸기 기능을 쓸수도 있지만, 내용 중 파일명과 동일한 문자가 있는 경우 잘못 수정할 우려도 있다.
다음은 변수를 사용한 경우이다.
스크립트
#!/bin/bash output=파일명.dat |
위 스크립트에서는 '파일명.dat'을 output 변수에 입력하고 각 행의 결과를 저장할 파일명을 output 변수로 대체 하였다.
실행하면 변수값으로 지정한 '파일명.dat' 파일에 각 행의 실행결과를 저장한다.
파일명을 수정할 때는 output 변수에 입력되는 파일명만 수정하면 된다.
다음은 명령어 실행 결과를 변수에 저장하는 방법이다.
$var1=`echo heuk` $var2=$(echo choo) $echo var1 heuk $echo var2 choo |
위와 같이 두 가지 방법이 있다.
var1의 그레이브(`)는 키보드의 물결 아래 문자이다.(작은 따옴표가 아님)
두 방법 모두 echo 명령어도 출력한 문자를 변수에 저장했다.
echo 외에도 다양한 명령어 실행 결과를 저장할 수 있어서 프로그래밍에 꽤 사용된다.
마지막으로 변수 사용 시 참고사항이다.
변수를 큰따옴표(" ")로 묶을 경우 컴퓨터는 변수를 인지한다.
작은따옴표(' ')로 묶을 경우 컴퓨터는 문자로 인지한다.
변수 사용 시 이를 주의해야 한다.
변수 사용은 프로그래밍의 시작이다.
전체 0