<Linux Shell Script Chapter 3> - 쉘 스크립트 2

심우열·2023년 2월 9일
0

Linux Shell Script

목록 보기
5/17

7. 쉘 변수

  1. 변수 초기화시, 등호 기호 좌우에는 공백이 있으면 안됨(ex. animal= tiger, animal = tiger)
  2. 변수 참조시에는 항상 $기호가 앞쪽에 붙어야함

8. 파라미터 대체와 인용부호

  1. 변수에 공백문자가 있다면 그 변수를 참조 하였을때, 공백문자가 인식되어 변수를 공백문자 별로 나누어 읽음
  2. 따라서 변수에 공백문자가 있다면, 변수를 참조할때 또한 인용부호 안에 넣어주어야 함
  3. 변수에 더해 어떤 내용을 추가로 표시하고 싶다면, ${animal}s 와 같이 변수를 중괄호 안에 넣어주어야 함.

9. 특수 매개 변수

  1. 다음과 같은 스크립트 파일에서 dirname $0에서 의 의미는 내부의 명령어가 먼저 실행되고, 실행 결과가 저장되어 DIRECTORY 변수의 초기화에 이용됨을 의미
  2. dirname $0에서, $0은 특수 매개 변수 인데, 현재 스크립트 파일의 경로명을 의미하며, 현재 스크립트 파일의 경로명중 dirname 부분만 가져오는 것을 의미한다.
  3. 특수 매개 변수의 종류

10. 환경 변수

  1. 미리 예약되어 있는 변수를 환경 변수라고 한다.
  2. env 명령어로 현재 사용중인 변수값을 확인 할 수 있음
  3. 환경 변수의 종류

11. declare

  1. declare 명령어를 사용하면 변수를 다양한 방법으로 선언할 수 있음
  2. declare -a 옵션을 통해 변수에 배열을 넣을 수 있음, alnum=(a1 b1 c1 d1 e1) 와 같이 배열 생성
  3. 배열은 다음과 같이 참조 가능, echo "{alnum[1]}"
  4. declare -i 옵션을 통해 정수형 변수를 선언 가능, 이러한 변수는 연산이 가능함, 쉘에서는 변수에 숫자가 저장되었다고 해서 정수형 변수로 저장 되지 않고 문자 자체로 저장됨
  5. declare -r 옵션을 통해 읽기 전용 변수 선언 가능
  6. declare -x 옵션을 통해 export 명령어의 의미를 가질 수 있음

12. 매개 변수 확장

  1. testString="That that is is that that is not is not"
  2. echo ${#testString} 은 testString 의 글자 개수를 출력
  3. echo ${testString:0} 은 testString 의 0번째 문자부터 출력
  4. echo ${testString:0:3} 은 testString의 0번째 문자부터 3개 문자 출력
  5. echo ${testString#T*is} 은 testString의 앞부분부터 탐색하여 T로 시작하는 부분부터 is로 끝나는 부분 제외하고 출력: is that that is not is not
  6. echo ${testString##T*is} 은 testString의 앞부분부터 탐색하여 T로 시작하고 is로 끝나는 부분 중 가장 크기가 가장 큰 부분을 제외하고 출력: not
  7. echo ${testString%is*not} 은 testString의 뒷부분부터 탐색하여 is로 시작하고 not 으로 끝나는 부분을 제외하고 출력: That that is is that that is not
  8. echo ${testString%%is*not} 은 testString의 뒷부분부터 탐색하여 is로 시작하고 not 으로 끝나는 부분중 크기가 가장 큰 부분을 제외하고 출력: That that
  9. echo ${testString//that} 은 testString에서 that과 일치하는 부분을 모두 제외하고 출력: That is is is not is not
  10. echo ${testString/that/this} 은 testString에서 that과 일치하는 부분을 한개만 찾아 this로 치환하고 결과 출력: That this is is that that is not is not
  11. echo ${testString/[tT]hat/this} 은 testString에서 that이나 That과 일치하는 부분을 한개만 찾아 this로 치환하고 결과 출력: this that is is that that is not is not
  12. echo ${testString//[tT]hat/this} 은 testString에서 that이나 That과 일치하는 부분을 앞에서부터 모두 찾아 this로 치환하고 결과 출력: this this is is this this is not is not
  13. echo ${testString/#That/this} 은 testString에서 that과 일치하는 부분을 앞에서부터 한개만 찾아 this로 치환하고 결과 출력: this that is is that that is not is not
  14. echo ${testString/%not/NO} 은 testString에서 not과 일치하는 부분을 뒤에서부터 찾아 한개만 NO로 치환하고 결과 출력: That that is is that that is not is NO
profile
Dev Ops, "Git, Linux, Docker, Kubernetes, ansible, " .

0개의 댓글