셸 따옴표 와 변수

최근 에 회사 에서 대량의 연 결 된 도 메 인 이름 을 신 청 했 는데 여 기 는 test 00. com ~ test 99. com 으로 대체 합 니 다.DNS 와 A 기록 을 맞 추고 다음 에 또...
apache 의 가상 호스트 규칙 을 쓸 차례 입 니 다.이렇게 많은 도 메 인 이름 을 하나씩 쓰 면 반드시 사람 을 죽 일 것 이다. 머리 를 돌리 면 계략 이 떠 오른다.우리.
적어도 N 가지 방법 이 있다.
      먼저 생각 나 는 것 은 매크로 를 이용 하여 이 루어 지 는 것 이다. 예 를 들 어 평소에 내 가 매크로 를 가장 많이 사용 하 는 몇 개의 매크로 기능 을 가 진 도 구 는 vim, notepad +, UltraEdit - 32 이다.
그리고 워드.
원 하 는 효과 가 나타나다.
      이어서 셸 을 이용 하여 함 수 를 정의 해서 실현 할 생각 이다.그러나 회사 쪽 에서 너무 급 하 게 재촉 해서 아예 함수 와 매크로 를 사용 하지 않 아 도 된다. 직접적 으로 가장 간단 하 다.
셸 에 echo!그러나 echo 를 사용 할 때 변 수 는 작은 따옴표 에서 전달 되 지 않 는 다 는 것 을 발 견 했 습 니 다. 이 때 는 두 개의 작은 따옴표 로 해 야 한다 고 생각 했 습 니 다.
구체 적 인 코드 는 다음 과 같다.
#!/bin/bash
for ((site=00;site<100;site++))
do
echo ''
echo '  ServerAdmin     [email protected] '
echo '  DocumentRoot    "d:/wwwroot/group/www.test'${site}'.com" '
echo '  ServerName      www.test'${site}'.com'
echo '${site}'.com">'
echo '          Options FollowSymLinks'
echo '          AllowOverride   None'
echo '          Order   allow,deny'
echo '          Allow   from all'
echo '  '
echo ' '
echo ' '
echo '  ServerAdmin     [email protected]'
echo '  ServerName      test'${site}'.com'
echo '  RewriteEngine   on'
echo '  RewriteRule ^(.*)$ http://www.test'${site}'.com$1 [R=301,L]'
echo ''
echo -e "n"
done

주: 사실 위의 스 크 립 트 는 10 전의 숫자 앞 에 0 을 추가 하 는 것 을 실현 할 수 없습니다. 본 고 는 주로 작은 따옴표 와 변수의 관 계 를 말 하기 때 문 입 니 다.
그래서 나 도 수정 안 했 어.구체 적 으로 10 이전 숫자 에 0 을 추가 하려 면 if 판단 을 추가 할 수도 있 고 다른 도구 printf 를 통 해 이 루어 질 수도 있 습 니 다.
실현, 구체 적 으로 나의 또 다른 예 를 참조 할 수 있 습 니 다. 00 에서 99 를 대량으로 표시 하고 10 전의 숫자 에 0 을 추가 할 수 있 습 니 다.
셸 의 작은 따옴표, 작은 따옴표 와 두 개의 작은 따옴표 의 차 이 는 다음 과 같은 예 를 보십시오.
[root@test] a=55
[root@test] echo $a
55
[root@test] echo '$a'
$a
[root@test] echo ''$a''  #               
55

       위의 예 에서 알 수 있 듯 이 두 따옴표 는 변수 와 특정한 특수 기호 에 대한 전 의 를 차단 하지 않 고 작은 따옴표 안의 모든 내용 은 그대로 잘못된 출력 을 할 것 이다.
그러나 작은 따옴표 에서 작은 따옴표 로 변 수 를 일 으 키 면 변 수 는 정상적으로 나타 날 수 있 고 수학 에서 마이너스 가 플러스 인 것 과 같다.
원본 주소:http://www.361way.com/quotation-mark/1166.html

좋은 웹페이지 즐겨찾기