-
[Shell Script] ssh remote command not working well after read lineSW/Shell Script 2020. 1. 18. 10:16
파일을 읽고 그 내용을 ssh로 원격 명령어를 원격에서 내용을 리컬시브하게 출력하는 프로그램이다.Input.txt에는 보낼 단어들이 한줄로 나열
ex)
디비
네트워크
오에스
언어
send_msg_ssh.sh에는 받은 인자(input.txt 단어)를 ssh로 다른 서버에 보낸다.
Input파일을 한줄씩 읽어와 send_msg_ssh.sh에 인자로 보내면 send_msg_ssh.sh에서는 다른 서버에 보낸다. 서버에서는 받은 단어 출력.
결과는 4줄다 보낼줄 알았는데 몇개만 받고 test_recursive함수를 끝났다.#!/bin/bash TEST=input.txt test_recursive() { while read -r LINE || [[ -n "$LINE" ]]; do echo $LINE ./send_msg_ssh.sh $LINE sleep 1 done < "$TEST" } test_recursive
리다이렉션 문제 때문이다. 그래서 표준입력 0을 null로 리다이렉션 하면 문제가 해결된다🥳
정확한 이유는 리눅스를 좀 더 공부해야겠다.
개인적인 생각은 자식프로세스에서 ssh로 원격 명령을 내리니 입력이 꼬여서 null로 리다이렉션 해야될 듯 하다.
#!/bin/bash TEST=input.txt test_recursive() { while read -r LINE || [[ -n "$LINE" ]]; do echo $LINE ./send_msg_ssh.sh $LINE 0</dev/null //리다이렉션 sleep 1 done < "$TEST" } test_recursive
몇일동안 고생했는데 좋은 경험이었다👍👍👍👍👍👍
마땅한 제목과 원인 아시는분은 댓글로 알려주세요ㅎㅎㅎ
2019/10/18 - [SW/Shell Script] - [Shell Script] echo 제자리 출력 (카운트다운)
2019/08/18 - [SW/Shell Script] - [Shell Script] while문, until문
'SW > Shell Script' 카테고리의 다른 글
[Shell Script] printf 이쁘게 출력하기 (얼라인 맞추기) (0) 2020.08.17 [Shell Script] echo 제자리 출력 (카운트다운) (0) 2019.10.18 [Shell Script] while문, until문 (0) 2019.08.18 [Shell Script] for문 여러 형식 (0) 2019.08.18 [Shell Script] 파일인지 폴더인지 if문 및 옵션 (0) 2019.08.18