Bash - 배열을 변수 값에 넣는 방법은 무엇입니까?

Bash - 배열을 변수 값에 넣는 방법은 무엇입니까?

다음을 포함하는 web.txt 파일이 있습니다.

youtube
facebook
google

내 sh 파일에는 다음이 포함됩니다.

readarray web < web.txt
url = www.website.com

내가 사용한 명령:

readarray web < web.txt
url = www."$web".com

ping url

예상 출력:

ping youtube.com
ping facebook.com
ping google.com

올바른 구문은 무엇입니까? 감사해요!

답변1

만약 너라면진짜표시된 예상 출력을 인쇄하고 싶습니다.

$ readarray -t web < web.txt
$ printf 'ping www.%s.com\n' "${web[@]}"
ping www.youtube.com
ping www.facebook.com
ping www.google.com

그러나 실제로 호스트를 ping하려면 xargs다음과 같이 더 간단 할 수 있습니다.

xargs -a web.txt -I{} ping -c1 "www.{}.com"

답변2

파일에서 읽은 문자열을 앞에 추가 www.하고 결과 문자열에 사용하려면 다음을 수행하십시오..comweb.txtping

while IFS= read -r company; do
    ping "www.$company.com"
done <web.txt

관련 정보