2013-01-09 5 views
0

변수 $ x는 isd21anms.com, isd31anms.com 등과 같은 샘플 값을 갖습니다. 이제 for 루프를 반복하여 1에서 1로 변경하고 싶습니다. 2, 3 4. isd21anms.com, isd31anms.com, isd41anms.com 같은 값을 가질 수 $의 X를 기억 코드루프를 반복하면서 변수를 변경하는 동안 문자를 변경하십시오.

for i in 1 2 3 4 
do 
    change $i such that I get values isd21anms.com, isd22anms.com, isd23anms.com, isd24anms.com 
done 

아래를보고하십시오. 그래서 변수에 저장하고 상수 값을 사용하는 대신 루프를 적용해야합니다. 내가 제대로 질문을 이해하면

답변

0
for i in 1 2 3 4 
do 
y=`echo $temp | sed "s/\(.*\).\(anms.com\)/\1"${i}"\2/g"` 
echo "y is $y" 
done 

아래 테스트 :

> ./temp.sh 
y is isd21anms.com 
y is isd22anms.com 
y is isd23anms.com 
y is isd24anms.com 
> setenv temp "isd31anms.com" 
> ./temp.sh 
y is isd31anms.com 
y is isd32anms.com 
y is isd33anms.com 
y is isd34anms.com 
0

이 실행에

for x in isd21anms.com isd31anms.com isd41anms.com 
do 
     for i in {1..4} 
     do 
       y=${x/1/$i} 
       echo $y 
     done 
done 

, 가지고 :

isd21anms.com 
isd22anms.com 
isd23anms.com 
isd24anms.com 
isd31anms.com 
isd32anms.com 
............ 
+0

$ x를 하나의 고려 솔루션은이 경우의 사촌의 UR에 실패합니다 isd21anms.com, isd31anms.com, isd41anms.com.so 같은 값을 가질 수 있습니다 case isd21 .... isd31, isd41 등이 아닙니다. – user1745857

+0

@ user1745857 : updated – Guru

+0

여기에 사용할 변수가 있습니다. 스크립트를 실행할 때 isd11anms.com isd21anms.com isd31anms.com isd31anms.com isd41anms.com에서 값을 가질 수 있습니다. 그래서 나는 내가 달릴 때 어떤 가치가 있을지 모른다. 이 변수를 사용하고 반복해야합니다. – user1745857

1

나는 위해 중괄호 확장을 사용 이

,
for i in isd{1..4}{1..4}anms.com; do 
    echo $i 
done 

출력 :

isd11anms.com 
    isd12anms.com 
    isd13anms.com 
    isd14anms.com 
    isd21anms.com 
    isd22anms.com 
    isd23anms.com 
    isd24anms.com 
    isd31anms.com 
    isd32anms.com 
    isd33anms.com 
    isd34anms.com 
    isd41anms.com 
    isd42anms.com 
    isd43anms.com 
    isd44anms.com 

brace expansion

관련 문제