셸 변수 처리

2694 단어 셸 프로그래밍
인터넷에서 글을 찾았지만 원작자는 누군지 몰랐다. 기록에 의하면 우리가 정의한 변수는 다음과 같다. 코드는 다음과 같다.
file=/dir1/dir2/dir3/my.file.txt
${} 를 사용하여 각각 다른 값을 바꿀 수 있습니다. 코드는 다음과 같습니다.
${file#*/}:      /         :dir1/dir2/dir3/my.file.txt
${file##*/}:       /          :my.file.txt
${file#*.}:      .          :file.txt
${file##*.}:       .          :txt
${file%/*}:        /          :/dir1/dir2/dir3
${file%%/*}:      /          :(  )
${file%.*}:        .          :/dir1/dir2/dir3/my.file
${file%%.*}:       .           :/dir1/dir2/dir3/my

기억하는 방법은 다음과 같습니다. 코드는 다음과 같습니다.

왼쪽 빼기(키보드에서 #$의 왼쪽)


% 는 오른쪽 (키보드의% 는 $오른쪽에 있음) 을 제거하는 단일 기호가 가장 적게 일치합니다.두 기호가 최대 일치${file:0:5}: 가장 왼쪽에 있는 다섯 바이트 추출:/dir1${file:5:5}: 다섯 번째 바이트 오른쪽에 있는 연속 다섯 바이트 추출:/dir2
변수 값의 문자열을 바꿀 수도 있습니다. 코드는 다음과 같습니다.${file/dir/path}: 첫 번째dir를 path:/path1/dir2/dir3/my로 바꿉니다.file.txt${file//dir/path}: 모든dir를 path:/path1/path2/path3/my로 바꿉니다.file.txt
${}를 사용하면 서로 다른 변수 상태에 대해 값을 부여할 수 있습니다. (설정하지 않았습니다. 빈 값, 비공식 값): ${file-my.file.txt}: 만약 $file 설정하지 않았다면 my를 사용하십시오.file.txt는 반환 값을 합니다.(빈값 및 비공값 시 처리하지 않음)${file:-my.file.txt}: $file가 공값으로 설정되지 않거나 없으면 my를 사용합니다.file.txt는 반환 값을 합니다.(비어 있지 않을 때 처리하지 않음)${file+my.file.txt}: 만약 $file가 비어 있거나 비어 있지 않을 경우 모두 my를 사용합니다.file.txt는 반환 값을 합니다.(설정하지 않았을 때 처리하지 않음)${file:+my.file.txt}: $file가 비어 있으면 my를 사용합니다.file.txt는 반환 값을 합니다.(값이 설정되지 않았을 때 처리하지 않음)${file=my.file.txt}: $file가 설정되지 않았을 경우 my를 사용합니다.file.txt는 반환 값을 하고 $file에 my를 부여합니다.file.txt . (빈값 및 비빈값 시 처리하지 않음)${file:=my.file.txt}: $file 빈값으로 설정하지 않거나 설정하지 않으면 my를 사용합니다.file.txt는 반환 값을 하고 $file에 my를 부여합니다.file.txt . (비어 있지 않을 때 처리하지 않음)${file?my.file.txt}: $file를 설정하지 않으면 my.file.txt를 stdERR로 내보냅니다.(비어 있는 값 및 비어 있지 않은 값은 처리하지 않음)${file:?my.file.txt}: $file가 설정되지 않거나 비어 있으면 my.file.txt를 stdERR로 내보냅니다.(값이 비어 있지 않으면 처리하지 않음)${#var}변수 값의 길이를 계산할 수 있습니다.${#file} 27을 얻을 수 있습니다. 왜냐하면/dir1/dir2/dir3/my.file.txt는 27바이트입니다.

좋은 웹페이지 즐겨찾기