필드 구분자 와 교체 기

내부 필드 구분자(Internal Field Separator, IFS) 는 셸 스 크 립 트 의 중요 한 개념 입 니 다. 텍스트 데 이 터 를 처리 할 때 유용 합 니 다. 하나의 데이터 흐름 을 서로 다른 데이터 요소 로 나 누 는 경계선 을 논의 할 것 입 니 다. 내부 필드 구분 자 는 특정한 용도 로 사용 되 는 경계선 입 니 다. IFS 는 경계선 을 저장 하 는 환경 변수 입 니 다. 현재 셸 환경 에서 사용 되 는 기본 경계선 문자 입 니 다.꿰미
실례 1:
1 data="name,sex,rollno,location"
  2 #我们可以使用IFS读取变量中的每一个条目
  3 oldIFS=$IFS
  4 IFS=","
  5 for item in $data;do
  6 echo Item: $item
  7 done
  8 IFS=$oldIFS
输入如下:
   Item: name
   Item: sex
   Item: rollno
   Item: location

IFS 의 기본 값 은 공백 문자 (줄 바 꿈 문자, 탭 문자 또는 공백) 입 니 다.
IFS 가 쉼표 로 설정 되 었 을 때 셸 은 쉼표 를 하나의 경계 문자 로 해석 하기 때문에 변수 $item 은 매번 교체 할 때마다 쉼표 로 구 분 된 문자열 을 변수 값 으로 선택 합 니 다.
IFS 가 ","로 설정 되 어 있 지 않 으 면 위의 스 크 립 트 는 모든 데 이 터 를 하나의 문자열 로 출력 합 니 다.
실례 2:
  1 #!/bin/bash
  2 line="root:x:0:0:root:/root:/bin/bash"
  3 oldIFS=$IFS;
  4 IFS=":"
  5 count=0
  6 for item in $line;do
  7 [ $count -eq 0 ] && user=$item;
  8 [ $count -eq 6 ] && shell=$item;
  9 let count++
 10 done;
 11 IFS=$oldIFS
 12 echo $user\'s shell is $shell;
输出为:
    root's shell is /bin/bash

좋은 웹페이지 즐겨찾기