일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- java
- linux
- 자바기초
- DB
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 직장인인강
- 데이터베이스
- String
- 패스트캠퍼스
- 자바
- 직장인자기계발
- 리눅스
- 자바연습문제
- 자바기본
- js
- javabasic
- 재택근무
- 스프링
- 자바예제
- 패캠챌린지
- 디자인패턴
- 패스트캠퍼스후기
- Spring
- 디자인
- java기초
- DesignPattern
- ncs
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 웹
- 국비
- Today
- Total
FIF's 코딩팩토리
리눅스 BASH Shell 프로그래밍 기초(2) 본문
이번시간에는 파이프와 변수에 대해 공부해보겠습니다.
파이프(pipes)
이 장에서는 파이프를 사용하는 간단하면서도 실질적인 예를 들어 보겠다.
파이프로 무엇을 할 수 있을까
파이프는 정말 간단한 방법으로, 한 프로그램에서의 출력을 다른 프로그램의 입력으로 보낸다. 이렇게 "흘려 보내기"때문에 파이프다.... 라고 생각하면 딱 맞을 것이다. ^^
예제 : sed를 이용한 아주 간단한 파이프 예제
다음은 파이프를 이용하는 가장 간단한 실례이다.
ls -l | sed -e "s/[aeio]/u/g" |
그러면 한번 위 내용을 찬찬히 살펴보자. 먼저 'ls -l' 명령이 실행되었다. 그리고 이 결과는 화면에 출력되는 대신, 파이프를 타고 sed 프로그램에 전달되어 다시 한번 처리된 후 화면에 출력된다.
예제 : 'ls -l *.txt'의 색다른 형태
아마도 이 방법은 'ls -l *.txt'를 사용하는 것 보다는 까다로운 것이겠지만, 파이프의 사용에 대해서만큼은 확실히 보여줄 수 있다.
ls -l | grep "\.txt$" |
여기서 'ls -l'의 결과는 grep으로 넘어가, "\.txt$"라는 조건에 맞는 값만을 화면에 출력한다. 이 결과는 'ls -l *.txt'와 같다.
변수
다른 프로그래밍 언어를 사용할 때와 마찬가지로, 셸 프로그래밍을 할 때도 변수를 사용할 수 있다. 게다가 bash에서는 데이터 타입을 미리 정할 필요 없이, 숫자나 문자, 혹은 문자열을 지정할 수 있다.
어떤 변수가 처음 사용되는 순간 참조가 생성되므로, 변수를 따로 선언할 필요는 없다.
예제 : 변수를 사용한 Hello World! 출력
#!/bin/bash STR="Hello World!" echo $STR |
2번째 줄에서 STR이라는 이름의 변수가 생성되며 "Hello World!"를 받았다. 이 변수에 들어있는 값을 사용하기 위해서는 '$'를 변수 이름 앞에 사용하여 이것이 변수라는 사실을 알려 주어야 한다. 변수 이름 앞에 '$'를 빼놓았을 경우에는 예상했던 것과는 다른 결과가 나올 것이다. 예컨대, 이런 경우 셸은 이 변수 자체를 문자열로 인식해 버리거나 하기 때문에 주의해야 한다.
5.2. 예제 : 여전히 간단한 백업 스크립트
#!/bin/bash OF=/var/my-backup-$(date +%Y%m%d).tgz tar -cZf $OF /home/me/ |
이 스크립트는 앞서 살펴본 것과는 질적으로 다른 물건이다. 일단 이것은 생성 날짜가 파일 이름이 되기 때문에 파일명이 중복되지 않아, 백업하기 용이하다. 두 번째 줄의 '$(date +%Y%m%d)'가 바로 그 부분이다. 매일 파일 이름이 달라진다는 것을 알 수 있다. date는 원하는 대로 옵션을 조절하여 다른 포맷으로 출력할 수도 있으니 확인해 보자. 또한 이 스크립트를 실행하면 명령 실행 과정이 화면에 그대로 출력된다는 점도 참고해 두자.
참고할 만한 것을 좀 보자. 다음 내용을 각각 직접 실행해 보자.
echo ls echo $(ls) |
무엇이 다른지 확인하고, 왜 다른지도 알아보자.
5.3. 지역 변수
지역 변수는 local이라는 키워드를 사용하여 생성된다.
#!/bin/bash HELLO=Hello function hello { local HELLO=World echo $HELLO } echo $HELLO hello echo $HELLO |
이 예제는 지역 변수를 사용하는 방법에 대한 것이다. 이미 프로그래밍 언어를 조금이라도 다루어 보았다면 이런 방식의 코드를 본 적이 있을 것이다. 여기에서는 함수를 호출하는 방법에도 주의하자.
'Linux(리눅스)' 카테고리의 다른 글
리눅스(Linux) CentOS7 고정아이피 설정 (0) | 2019.05.23 |
---|---|
리눅스(Linux) vi편집기 명령어 (0) | 2019.05.21 |
리눅스 환경설정 파일 & 커널 파라미터 & 프로젝트/이슈 관리 (0) | 2019.05.21 |
VirtualBox에 설치한 OS가 갑자기 안될때 (0) | 2019.05.17 |
리눅스 BASH Shell 프로그래밍 기초(1) (0) | 2019.05.10 |