다음을 수행하는 dd 마이그레이션 스크립트를 작성하려고 합니다.
- 사용자 입력(최대 4개)을 "array"라는 배열로 읽어옵니다. 사용자는 마이그레이션할 논리 볼륨의 이름을 입력합니다.
- 배열의 각 요소를 저장한 후 다음을 실행합니다.
/sbin/lvscan | grep -E '"array[0]"|"array[1]"|"array[2]"|"array[3]"’
- 여러 SSH 연결이 이루어지고 각 논리 볼륨은 dd를 통해 사용자가 IP를 입력하고 변수에 저장되는 특정 호스트로 마이그레이션됩니다.
나는 현재 다음을 가지고 있습니다:
#!/bin/bash
echo "Enter upto 4 SRVID's seperated by a space"
while read SRVIDS
do
[ "$SRVIDS" == "done" ] && break
array=("${array[@]}" $SRVIDS)
done
/sbin/lvscan | grep -E '"array[0]"|"array[1]"|"array[2]"|"array[3]"' 2&>1
내가 뭘 잘못했나요? 논리 볼륨 경로를 얻기 위해 grep을 할 수 없습니다.
답변1
모든 배열 요소를 나열할 필요는 없습니다.
IFS="|"
grep -E "${array[*]}"
오래된 것을 저장 IFS
하고 복원하는 것을 잊지 마십시오.