제어 구문 예제_04 ID 컬럼을 "00001" 처럼 0으로 채운 CSV 파일에서 번호를 지정해서 값을 추출하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: read, cut, test
키워드: 숫자값, 문자열, 0 채우기
사용처: “00001” 처럼 0으로 채운 문자열을 그대로 숫자로 다루고 싶을 때
실행예제
$ cat data.csv
00001,Busan
2,Kim
3,Park
00004,Seo
$ ./zero-string.sh
Busan <------------------ ID 번호가 1인 값을 출력
스크립트
#!/bin/sh
# 추출 조건 등 정의
match_id=1 # 추출할 ID -------------------- 1
csvfil...
제어 구문 예제_03 강제 종료될 때까지 파일 내려받기를 반복해 통신 확인하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: true, curl, sleep
키워드: 무한 반복, 접속 확인, 내려받기
사용처: 웹 서버 확인을 계속 반복하고 싶을 때
실행예제
$ ./download-loop.sh
[check OK]
[check OK]
[check OK]
[check OK]
[check OK]
^C <------------------ Ctrl + C 키를 입력할 때까지 계속 실행
스크립트
#!/bin/sh
# 확인 대상 URL
url=http://192.168.22.1/webapl/check #-------- 1
# 무한 반복 시작...
제어 구문 예제_02 연속된 파일명을 가진 URL을 자동 생성해서 순서대로 내려받기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: seq, printf, curl
키워드: 연속번호, URL, 내려받기
사용처: 파일명에 연속한 번호가 있는 그림 파일을 웹 서버에서 자동으로 내려받고 싶을 때
실행예제
$ ./number-file.sh <------ URL을 자동 생성해서 내려받기함
스크립트
#!/bin/sh
url_template=http://www.example.org/download/img_%03d.jpg #--- 1
# seq 명령어로 연속 번호 생성
for i in $(seq 10) #-----------------------...
제어 구문 예제_01 변수가 포함된 IP 주소 목록 파일을 읽어서 ping 명령어로 확인하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: sed, ping
키워드: for문, 템플릿 파일, 치환, 변수
사용처: 템플릿 파일을 사용해서 네트워크 개통을 확인하고 싶을 때
실행예제
$ cat ping_target.lst <------------- 템플릿 파일
%ADDR_HEAD%.1
%ADDR_HEAD%.2
%ADDR_HEAD%.3
%ADDR_HEAD%.4
$ ./for_command.sh 192.168.2
[Success] ping -> 192.168.2.1
[Success] ping -> 192.168.2.2
[Failed] ping -> 1...
쉘기능을 자유자재로 다루기_12 셸 스크립트 일부에 Perl이나 Ruby 사용하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: perl, nc, sleep
키워드: 한 줄 명령어, 펄, 루비, 난수
사용처: 난수 생성 등 셸 스크립트 기능 일부로 펄이나 루비 코드를 사용하고 싶을 때
실행예제
$ ./perl-oneline.sh
Connection to 192.168.2.1 80 port [tcp/http] succeeded!
Wait: 4 sec
Connection to 192.168.2.1 80 port [tcp/http] succeeded!
스크립트
#!/bin/sh
# 테스트 통신할 서버 정의
ipaddr="192.168.2.1"
p...
쉘기능을 자유자재로 다루기_11 여러 호스트에 병렬로 ping을 날려서 대기 시간 줄이기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: ping, wait, cat
키워드: 병렬 처리, 동기, 종료
사용처: 여러 호스트에 ping 명령어를 실행하는 대기 시간을 줄이고자 병렬로 백그라운드 실행시키고 명령어 종료를 동기화해서 결과를 순서대로 출력하고 싶을 때
실행예제
$ ./background-wait.sh
PING 192.168.2.1 (192.168.2.1): 56 data bytes
64 bytes from 192.168.2.1: icmp_seq=0 ttl=255 time=3.554 ms
64 bytes from 192.168.2.1: icmp_seq=0 tt...
쉘기능을 자유자재로 다루기_10 여러 URL 파일을 동시에 병렬로 내려받기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: curl
키워드: 백그라운드, 병렬 처리, 내려받기
사용처: 대기 시간이 있는 명령어가 많아서 병렬로 실행해 전체 실행 시간을 줄이고 싶을 때
실행예제
$ ./background-download.sh
$ <-------------------------- 파일 내려받기 완료를 기다리지 않고 바로 셸에 제어가 들어옴
스크립트
#!/bin/sh
# 병렬로 여러 사이트에서 내려받기
# 각각 백그라운드에서 처리
curl -sO http://www.example.org/download/bigfile.dat &...
195 post articles, 28 pages.