현재 위치 - 주공해몽공식사이트 - 팔자 점술 - Linux 는 외부 명령인 expr 을 차용하여 계산기 기능을 구현하고 파이프와 프로세스를 사용합니다.

Linux 는 외부 명령인 expr 을 차용하여 계산기 기능을 구현하고 파이프와 프로세스를 사용합니다.

테스트 설명 (설명자에게 문의)

기능: 파일 유형 및 비교 값을 확인합니다.

테스트의 다양한 매개 변수 및 사용법.

테스트 표현식 1-a 표현식 2

1 및 표현식 2 가 모두 참인 경우 값은 true 입니다.

테스트 표현식 1-o 표현식 2

1 또는 표현식 2 가 true 인 경우 이 값은 true 입니다.

테스트–n 문자열

또는

문자열을 테스트합니다

문자열 STRING 의 길이가 0 이 아닌 경우 True 입니다.

테스트–z 문자열

문자열 길이가 0 이면 이 값은 true 입니다.

테스트 문자열 1 = 문자열 2

STRING 1 및 STRING2 의 시간 값이 같을 때 true 입니다.

테스트 문자열 1! = STRING2

STRING 1 과 STRING2 의 다른 값이 참인 경우.

테스트 정수 1-eq 정수 2

정수 1 이 정수 2 인 경우 이 값은 true 입니다.

테스트 정수 1- 범용 전기 정수 2

INTEGER 1 이 INTEGER2 보다 크거나 같은 경우 True 입니다.

테스트 정수 1-gt 정수 2

정수 1 정수 2 보다 크면 True 입니다.

테스트 정수 1- 정수 2

INTEGER 1 이 INTEGER2 보다 작거나 같을 때 True 입니다.

테스트 정수 1-lt 정수 2

정수 1 정수 2 보다 작은 경우 True 입니다.

테스트 정수 1-ne 정수 2

INTEGER 1 이 INTEGER2 와 같지 않을 때 True 입니다.

테스트 파일1–ef 파일 2

1 파일과 파일 2 의 장치 번호와 inode 번호가 같으면 True 입니다 (자세한 내용은 Linux 파일 학습 노트 참조).

테스트 파일1–nt 파일 2

1 파일이 파일 2 의 새 값보다 수정된 경우.

테스트 파일1–ot 파일 2

파일 1 의 수정 시간이 파일 2 의 이전 값보다 참일 때.

테스트 -b 파일

파일이 존재하고 내용이 block 유형입니다.

테스트–c 파일

파일이 있으며 문자 유형입니다.

테스트 -d 파일

파일이 존재하며 디렉토리입니다.

테스트–e 파일

파일이 있습니까?

테스트–f 파일

파일이 존재하고 정규식 유형의 문서입니다.

테스트–g 파일

파일이 존재하고 SGID (set-group-ID) 인 sgid 입니다. 자세한 내용은 다음 학습 노트를 참조하십시오.

테스트–g 파일

파일이 존재하고 유효한 그룹 id 가 소유합니다. 자세한 내용은 다음 학습 노트를 참조하십시오.

테스트–h 파일

파일이 존재하고 심볼릭 링크입니다 (다음 학습 노트 참조).

테스트 -k 파일

파일이 존재하고 고정 비트가 설정되어 있습니다. 자세한 내용은 다음 학습 노트를 참조하십시오.

테스트–l 파일

파일이 존재하고 심볼릭 링크입니다.

-O 파일 테스트

파일이 존재하며 유효한 사용자 id 가 소유합니다.

테스트–p 파일

파일이 존재하고 명명된 파이프입니다 (다음 학습 노트 참고).

-r 파일 테스트

파일이 존재하고 읽기 권한이 부여되었습니다.

파일을 테스트합니다

파일이 존재하고 크기가 0 보다 큽니다.

파일을 테스트합니다

파일이 존재하고 소켓입니다.

테스트–테스트 문제 해결

터미널에서 파일의 설명자 FD 를 엽니다.

-u 파일 테스트

파일이 존재하고 SUID 가 설정되었습니다.

테스트–w 파일

파일이 존재하고 쓰기 권한이 부여되었습니다.

테스트–x 파일

파일이 존재하고 실행 권한이 부여되었습니다.

--

Expr

Expr 은 Linux 의 수동 명령줄 카운터로, 몇 가지 기본적인 표현식 값 연산을 완료하는 데 도움이 됩니다. 또한 문자열 처리 도구이기도 합니다.

(1) 정수 연산

$expr ARG 1 | ARG2

$ exprarg1& ARG2

$ exprarg1< ARG2

$ exprarg1< = ARG2

$expr ARG 1 = ARG2

$expr ARG 1! = ARG2

$ exprarg1> = ARG2

$ exprarg1> ARG2

$expr ARG 1+ARG2

$ exprarg1–arg2

$expr ARG 1 * ARG2

곱셈을 사용할 때는 백슬래시를 사용하여 이스케이프해야 합니다.

$expr ARG 1% ARG2

(2) 문자열 조작

$ expr length "XXX "// 문자열 길이를 계산합니다.

$ expr substr "이것은" pos length// pos 비트에서 길이를 자르는 부분 문자열입니다.

$ expr index "tesr" e// e 가 주 문자열에서 처음 나타나는 위치를 가져옵니다.

(3) 증분 개수

주기 =3

Loop =' expr $ loop+ 1' 입니다

Echo $loop

결과는 4 입니다. 코드의 두 번째 줄에서 역방향 따옴표를 사용하면 셸은 역방향 따옴표 안의 내용을 시스템 명령으로 사용합니다. 이렇게 하면 명령줄에 expr $loop+ 1 을 입력하는 것처럼 이 명령의 반환 결과가 이 루프에 할당됩니다.

(4) 패턴 일치 (정규식 패턴을 기준으로 문자열 일치)

콜론 옵션을 지정하여 문자열의 문자 수를 계산합니다. 。 * 모든 문자가 0 회 이상 반복됨을 나타냅니다.

& gtVALUE=account.doc

& gt 표현식 $ 값:'. *'

여덟;팔

패턴을 사용하여 추출하는 expr 에서 문자열 일치 작업을 사용할 수 있습니다. Doc 파일.

$ expr $ value: "\ (. * \). 의사

장부

(5) 기타

+토큰

토큰이 키워드든 연산자든 문자열로 해석됩니다.

지식 확장:

따옴표의 역할

1 큰따옴표 ("") 를 참조하십시오

1) $ (달러 기호), ` (역따옴표) 및 \ (역슬래시) 를 제외한 모든 문자 또는 문자열을 참조하려면 ""를 사용합니다. 큰따옴표는 셸이 변수 이름, 명령 대체, 백슬래시 이스케이프 등을 나타내는 세 문자를 특수하게 처리하는 것을 방해하지 않습니다.

Eg:name = gezn;; Echo "사용자 이름: $ name "// 는 사용자 이름 gezn 을 인쇄합니다.

Echo' 날짜는' date+date-%d-%m-%y' "//날짜 예: 03-05-2009 가 인쇄됩니다.

Echo-e "$ user \ t $ uid "//gezn 500 이 인쇄됩니다.

2) 공백이 포함된 새 문자열을 검색하려면 큰따옴표를 자주 사용합니다.

작은따옴표 2 개 ("")

1) 문자열을 작은 따옴표로 묶으면 dayi9nhao 에 있는 문자열에 있는 모든 특수 문자의 특별한 의미가 가려집니다.

2) 예: echo-e' $ USER \ t $ UID '/$ USER $ UID 가 인쇄됩니다 ("-e" 옵션으로 인해 차단되지 않음).

Echo' USER \ t $ UID '// 는 $USER\t$UID 를 인쇄합니다.

역따옴표 3 개 (` `)

1) 셸은 역방향 따옴표 안의 내용을 시스템 명령으로 사용하고 해당 내용을 실행합니다. 이 방법을 사용하여 출력을 변수로 바꿉니다.

2) 예: a=`date+date-%d-%m-%Y` // 인쇄 날짜를 03-05-2009 로 설정합니다.

4. 백슬래시 (\)

1) 다음 문자에 특별한 의미가 있는 경우 백슬래시는 셸이 그 의미를 오해하지 않도록 하여 특별한 의미를 가린다.

2) 종속 문자에는 특별한 의미가 포함됩니다. *+$ ` "|?

3) 문자열을 인쇄할 때 8 진수 문자 (ASCII 해당 문자) 를 추가하려면 앞에 백슬래시를 추가해야 합니다. 그렇지 않으면 셸이 일반 숫자로 사용됩니다.

예: bj = 베이징; Echo "variable \ $ bj = $ bj "// 는 $bj = Beijing 변수를 인쇄합니다.

--

셸 특수 변수

셸에는 특별한 의미를 가진 몇 가지 셸 변수가 미리 정의되어 있으며, 해당 값은 셸에 의해서만 실제 상황에 따라 할당될 수 있으며 사용자가 재설정할 수 없습니다. 셸의 특수 변수에는 해당 위치와 일부 시스템 변수가 포함됩니다.

(1) 공통 위치 변수:

셸 스크립트 이름을 제외한 명령행의 실제 매개변수 수입니다.

$? 마지막 명령을 실행한 후의 반환 값 ("종료 코드" 라고도 함). 이것은 십진수입니다. 대부분의 셸 명령이 성공적으로 실행되면 반환 값은 0 입니다. 실행에 실패하면 0 이 아닌 값이 반환됩니다.

현재 프로세스의 프로세스 번호입니다.

$! 마지막 백그라운드 명령에 해당하는 프로세스 번호는 1~5 자리 숫자로 구성된 숫자 문자열입니다.

$-현재 셸에 설정된 실행 플래그 이름으로 구성된 문자열입니다. 예를 들면 다음과 같습니다.

명령줄 Shell -xv 셸에 대한 플래그 -x 및 -v (추적 출력용) 를 설정합니다.

$ * 는 명령줄에 실제로 제공된 모든 매개 변수 문자열을 나타냅니다 (9 개 매개 변수로 제한되지 않음).

$ @ 기본 기능은 $ * 와 동일하지만 따옴표 안에 사용되며 각 매개 변수는 따옴표로 반환됩니다.

$0 스크립트 이름

$ 1 ...$9 n 번째 매개 변수

다음 AAA BBB 는 변수 이름입니다.

${aaa:-bbb} $aaa 가 비어 있거나 정의되지 않은 경우 값은 $bbb 입니다. 그렇지 않으면 값은 $aaa 입니다.

${aaa:+bbb} $aaa 가 비어 있지 않으면 값은 $bbb 이고, 그렇지 않으면 비어 있습니다.

${aaa:=bbb} $aaa 가 비어 있지 않으면 $aaa 값이 사용되고, 그렇지 않으면 $bbb 값이 사용되고 값이 지정됩니다 (aaa=bbb).

${aaa:3} aaa=abcdefg 인 경우 ${aaa:3} 의 값은' defg' 이고 substr 과 동등하며 카운트는 0 부터 시작합니다.

${aaa:3:2} 위와 같습니다. $ {AAA: 3: 2} 의 값은 de 로 substr 에 해당합니다.

${#aaa} 문자열 $aaa 의 길이입니다.

(2) 공통 시스템 변수:

$HOME 사용자의 홈 디렉토리

$USER 사용자 이름

$ TERM 사용자가 속한 $ 그룹의 이름입니다

$PATH 기본 검색 경로

$HOSTNAME 의 호스트 이름

$ TERM tz 시간대

$MAIL 을 저장하는 $ TERM 의 경로 이름

연습생:

#! /bin/bash

반향 $0

에코 $ *

Echo $@

Echo $#

에코 $ $

에코 $ _

터미널 창에서 다음을 수행합니다.

。 /test.sh-a-b–c/home

。 /test.sh

-a -b -c /home

-a -b -c /home

3250

/홈 페이지

$ * 와 $ @ 를 구분하여 다음 test.sh 스크립트를 작성합니다.

#! /bin/bash

기능 테스트 마크

{

반향 "$# args"

}

Testargs "$* "

테스트 마크 "$ @" 입니다

테스트 플래그가 설정되지 않았습니다

터미널 창에서 다음을 수행합니다.

。 /test.sh -a -b /home

1 args // 분명히 하나만 있습니다. 해석된 매개 변수 대신 문자열 $ * 이 전달됩니다.

3 args //$@ 결과가 정확하도록 따옴표를 일치시켜야 합니다.

#! /bin/bash

기능 테스트 마크

{

반향 "$# args"

}

Testargs $*

Testargs $@

테스트 플래그가 설정되지 않았습니다

마찬가지로, 다음과 같은 것들이 있습니다.

。 /test.sh -a -b /home

매개 변수 3 개

매개 변수 3 개

저자: 아가. J.

출처: blogs.com/aga-J. 。