Shell 두 가지 for 순환 대응 실현 방법 분석
생산 환경 에서 의 응용 장면:루트 디 렉 터 리 에 수량 이 다른 디 렉 터 리 를 만 들 고 서로 다른 하 드 디스크 를 마 운 트 합 니 다.sdb-sdn 의 순서에 따라 대응/data2-/datan 은 for 순환 패 널 로 해결 해 야 합 니 다.예 를 들 어 for i in 1,2,3,for j in a b c,1a,2b,3c 와 같이 for 순환 은 for 의 대응 을 지원 하지 않 는 것 같 습 니 다.첫 번 째 순환 이 두 번 째 순환 의 첫 번 째 변수 에 만 대응 하 는 상황 이 될 것 입 니 다.시간 이 좀 걸 렸 습 니 다.마지막 으로 두 가지 서로 다른 방식 으로 이 루어 질 수 있 습 니 다.각각 세 번 째 변 수 를 사용 하여 배열 을 변수 번호 로 대체 하고 사용 하 는 방법 입 니 다.직접 사례 로 설명 합 니 다.
변수 대체:
쉽게 말 하면 먼저 상 관 없 는 데 이 터 를 삽입 한 다음 에 sed 를 사용 하여 교체 하 는 것 이다.
for i in $every;do
#$erery , , wwwdata1 fstab
parted -s /dev/$i mklabel gpt &>/dev/null || echo "${i}part01 , "
parted -s /dev/$i mkpart Primary 1 `parted /dev/$i p|grep "^Disk"|cut -d ":" -f2` &>/dev/null || echo "${i}part02 , "
mkfs -T largefile -t ext4 -b 4096 -m 2 /dev/${i}1 &>/dev/null || echo "${i}mkfs , "
echo "/dev/${i}1 /wwwdata1 ext4 defaults 0 0" >> /etc/fstab
echo "-${i} -" && sleep 2
done
for a in $foldername;do
#$foldername , sed wwwdata1, wwwdata1, 。
sed -i 0,/wwwdata1/s//${a}/ /etc/fstab && echo "-${a} -" && sleep 1 || echo "-${a} -" done
배열:대응 해 야 할 요 소 를 각각 두 배열 에 넣 고 for 순환 을 사용 하여 요소 아래 에 표 시 된 대로 호출 합 니 다.간단 한 예 를 들 어 여러분 이 이해 할 수 있 었 으 면 좋 겠 습 니 다.
#!/bin/bash
file=(1 2 3)
disk=(a b c)
for i in `seq 0 2`;do
echo "${file[i]}${disk[i]}"
done
실제 응용 은 이 두 가지 방법 이 모두 가능 하지만 두 번 째 방법 은 더욱 과학적 이 고 대본 의 건장 성 이 좋다 는 것 을 알 수 있다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Shell alias 명령에 별칭을 설정하는 방법명령에 별명을 설정하면 명령의'작은 이름'으로 삼을 수 있지만, 이렇게 하는 것이 무슨 의미가 있습니까? 이때 별명이 작용할 수 있다.vim 명령의 별명을vi라고 정의하면 이후에 실행된vi 명령은 실제로vim 명령을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.