일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Pod
- Python
- spring cloud config
- dart
- macos
- configmap
- kubectl
- Kubernetes
- Android
- aws cli
- Flutter
- nginx-media-server
- namespace
- RTMP
- android studio
- ebpf
- ffmpeg
- Shell script
- Sysinternals
- deployment
- Java
- VSCode
- wireshark
- HLS
- Windows10
- golang
- 행정구역분류
- service
- docker
- aws
Archives
- Today
- Total
woonizzooni
자동 입력 쉘 스크립트 작성 (Here Document / Input Redirection 활용) 본문
Programming/Shell-script
자동 입력 쉘 스크립트 작성 (Here Document / Input Redirection 활용)
woonizzooni 2020. 11. 23. 00:16
얼마전 누구(?)의 급한 요청을 받음.
$ sudo /usr/whatap/php/install.sh
Input license key xxxxxxxxxxxxxxxx <-- 발급된 라이센스 key 입력
Input whatap.server.host 10.10.10.10/.. <-- 발급된 서버 IP 입력
대충 이렇게 동작하는 스크립트를 오토스케일링 되는 EC2에 자동 입력되도록 하고 싶은데 방법을 모르겠다. 도와달라~
> install.sh 를 대충 아래와 같다고 가정. (stdin을 두번 받도록...)
#!/bin/sh while true; do echo "serial"; read input if [ ${#input} -gt 0 ]; then echo "${input} is OK"; fi echo "host?"; read input if [ ${#input} -gt 0 ]; then echo "${input} is OK"; break; fi done |
[방법 1] << : Here Document 이용
<< 로 임시 파일(?) 생성 & 내용 작성해서 stdin에 연결함.
ex) 형식
$ command << delimiter bla bla bla delimeter |
- 다음과 같은 자동 입력 스크립트 작성(auto_input.sh)
- 실행
#!/bin/sh serial="1233456abcde" host="10.10.10.1" ${HOME}/install.sh << EOF ${serial} ${host} EOF |
<-- EOF대신 다른 단어 사용 가능한데, <-- 이 곳과 같은 문자로만 표기하면 됨. |
$ ./auto_input.sh$ chmod 755 ./auto_input.sh
serial?
123456abcdefg is OK!
host?:
10.10.10.1 is OK!
[방법 2] < : Input Redirection 이용
- 입력할 텍스트 문서 작성 후 install.sh에 input redirection
$ vim input.txt
123456abcdefg <-- 줄이 new line으로 구분되어 있어야 함. (원하는 input개수 만큼)
10.10.10.1
$ ./install.sh < input.txt
serial?
123456abcdefg is OK!
host?:
10.10.10.1 is OK!
방법은 여러가지가 있겠지...
'Programming > Shell-script' 카테고리의 다른 글
쉘 스크립트 - 배열 다뤄보기 / 배열 선언 / 배열끼리 병합 등... (0) | 2021.06.18 |
---|---|
쉘 스크립트 파일 작성하기 - #!으로 시작 + 공백없이 + 바이너리명 (0) | 2020.11.22 |
Comments