파일에서 한 줄씩 가져온 변수로 명령을 반복하십시오.

파일에서 한 줄씩 가져온 변수로 명령을 반복하십시오.

여러 원격 서버에 있는 파일에서 텍스트 문자열을 검색하려고 합니다. 이러한 각 서버에는 사용자 정의 포트 번호가 있으므로 해당 포트 번호를 "port_numbers.txt"(한 줄에 하나씩)라는 파일에 입력했습니다. 텍스트 파일의 출력을 사용하여 파일이 끝날 때까지 이 명령을 한 줄씩 반복하고 싶습니다.

목록의 각 서버에 필요한 문자열을 제공하는 스크립트를 작성하고 싶습니다. 지금까지 스크립트는 첫 번째 줄 이후에 중지됩니다. 명령을 반복하되 매번 "$line" 값을 다음 줄로 바꾸는 가장 좋은 방법은 무엇입니까?

#!/bin/bash

filename="port_numbers.txt"

while IFS= read -r line
do
ssh host -p"$line" "grep -Ei 'STRING' /path/to/file"
done

산출:

sh myscript.sh
user@hostname's password:
  "STRING":"STRING: STRING",

관련 정보