Linux 의 두 괄호 마스크 {} 와 [] 를 자세히 설명 합 니 다.

2579 단어 Linux
Liux 의 셸 에서 [] {} 두 개의 어댑터 는 헷 갈 리 기 쉽다. 이 두 개의 어댑터 는 모두 괄호 형식 이지 만 사용 하 는 장면 과 내용 의 해석 방식 은 모두 다르다.
[  ]    파일 이름 과 일치 하 는 필드 에 만 사용 할 수 있 습 니 다. 그리고 [  ]내 문 자 는 두 가지 해석 방식 만 있 습 니 다.
  • 땡 [  ]내 부 는 짧 은 가로줄 '-' 로 연 결 된 정렬 의 두 글자 (예 를 들 어 [5 - 9], [a - z]) 입 니 다. 명령 은 이 두 글자 사이 (이 두 글자 포함) 를 포함 한 모든 문자 의 파일 이름 과 일치 합 니 다. 
    ls file[0-9]
    상기 명령 은 Liux 시스템 으로 하여 금 디스크 에 있 는 모든 형식 에 맞 는 파일 (즉, 파일 이름 은 file 0 또는 file 1 또는 file 2 또는 file 3... 또는 file 9 의 파일) 을 보 여 줍 니 다. 
  • 땡 [  ]내부 구 조 는 상기 세 가지 조건 (짧 은 횡선 으로 연결, 순서, 단일 문자) 을 동시에 만족 시 키 지 못 하고 명령 은 [  ]모든 문 자 를 무관 한 단일 문자 로 취급 합 니 다.
    ls file[1-10]
    ls file[1..9]
    ls file[1,4,5]
    
    명령 ① ls file [1 - 10] 은 파일 file 1 file - file 0 명령 ② ls file [1. 9] 과 일치 하 며 파일 file 1 file 9 명령 ③ ls file [1, 4, 5] 과 일치 합 니 다. 파일 file 1 file, file 4 file 5
  • 와 일치 합 니 다.
     
    {   }    특정 필드 가 없 지만 시퀀스 파일 을 만 드 는 데 사 용 됩 니 다. 명령 에 {} 어댑터 를 사용 하면 셸 은 {} 의 내용 을 해석 방식 에 따라 하나 이상 의 매개 변수 로 번역 한 다음 에 여러 매개 변 수 를 포함 한 명령 을 수행 합 니 다. {  }안에 있 는 문 자 는 세 가지 우선 순 위 를 가 진 해석 방식 이 있 는데 우선 순위 에 따라 높 은 것 에서 낮은 것 으로 배열 하면 다음 과 같다.
  • {  }내부 에 쉼표 가 포함 되 어 있 을 때 셸 은 괄호 안에 있 는 내용 을 쉼표 에 따라 몇 개의 문자열 로 나 눕 니 다.
    touch file{1,2,3}
    touch file1 file2 file3
    
    cp file{,.bak}
    cp file file.bak
    명령 ① ② 와 등가, 명령 ③ 과 ④ 는 등가 입 니 다. 주의해 야 할 것 은 쉼표 로 구 분 된 구간 이 비어 있 을 때 (명령 ③) 정규 표현 식 에 따라 매개 변수 로 해 석 됩 니 다. 명령 ③ 은 백업 파일 생 성 에 자주 사 용 됩 니 다.
  • {  }내부 에 두 개의 연속 적 인 소수점 '...' 이 포함 되 어 있 을 때 셸 은 이 를 서열 로 해석 하려 고 시도 할 것 이다. 1) 괄호 내부 가 '..' 로 연 결 된 두 개의 숫자 일 때 (반드시 하나의 문자 가 아니 라 11, 353, 4694 등) 셸 은 이 두 숫자 와 그 중간 에 있 는 모든 숫자 로 구 성 된 매개 변수 서열 로 해석 할 것 이다. 예 를 들 어 다음 세 가지 명령 은 등가 이다.
    touch file{11..8}
    touch file{8..11}
    touch file8 file9 file10 file11
    2) 괄호 내 부 는 "..."로 연 결 된 두 글자 일 때 (하나의 문자 여야 함) 셸 은 이 를 ASCII 메타 에 있 는 두 글자 와 그 중간 에 있 는 모든 문자 로 구 성 된 매개 변수 시퀀스 로 해석 합 니 다. 주의해 야 할 것 은 한 글자 가 쉼표 일 때 ","다음 1, 2, 3, 4 조 명령 은 각각 등가 입 니 다.
    touch file{,..?}
    touch file file..?
    
    touch file{,..3}
    touch file file..3
    괄호 내부 에 '...' 가 포함 되 어 있 지만 상기 두 가지 형식 에 만족 하지 않 습 니 다. 셸 은 이 를 서열 로 해석 하지 않 고 {xx.. xx} 입 니 다.전체적으로 명령 으로 받 아들 이 는 매개 변수 로 서 아래 의 세 번 째 해석 방식 에 따라 설명 한다.
  • 괄호 안에 ',', '...' 의 두 가지 서열 형식 이 포함 되 어 있 지 않 으 면 셸 은 번역 을 하지 않 고 대괄호 와 그 내용 을 전체적으로 볼 것 입 니 다.
    touch file{3fadf}
    touch file{aa..zz}
    touch file{}
    상기 세 가지 명령 은 각각 파일 'file {3fadf}', 파일 'file {aa. zz}' 과 파일 'file {}' 을 만 듭 니 다.
  • 좋은 웹페이지 즐겨찾기