셸 입문 부터 포기 까지 2 단계 ing
7751 단어 프로 그래 밍 언어표현 식작은 따옴표
이로써 소 백 에서 포기 하 는 두 번 째 부분 까지 @ @
셸 연산 자
Shell 은 많은 연산 자 를 지원 합 니 다. 이 는 Shell 연산 자, 관계 연산 자, 불 연산 자, 문자열 연산 자 등 을 포함 합 니 다.
산술 연산 연산 자: +,- *, / %:나머지 를 취하 다 **:차방 산술 연산 형식: (1) let VAR = 산술 식 (2) VAR = $[산술 표현 식] (3) VAR = $(산술 식) (4) VAR=$(expr $ARG1 $OP $ARG2)
예 를 들 어 두 개의 수 를 더 하면
#!/bin/bash
val = ` expr 2 + 2 ` \ # 또는 var = $(expr 2 + 2)
echo "Total value : $val"
스 크 립 트 출력 실행:
Total value : 4
두 가지 주의:
#!/bin/sh
a=10
b=20
val=`expr $a + $b`
echo "a + b : $val"
val=`expr $a - $b`
echo "a - b : $val"
val=`expr $a \* $b`
echo "a * b : $val"
val=`expr $b / $a`
echo "b / a : $val"
val=`expr $b % $a`
echo "b % a : $val"
if [ $a == $b ]
then
echo "a is equal to b"
fi
if [ $a != $b ]
then
echo "a is not equal to b"
fi
:a + b : 30
a - b : -10
a * b : 200
b / a : 2
b % a : 0
a is not equal to b
주의:
관계 연산 자
관계 연산 자 는 문자열 의 값 이 숫자 가 아 닌 숫자 만 지원 합 니 다.
연산 자
설명 하 다.
예 를 들다
-eq
두 개의 수가 같은 지 확인 하고, 같은 값 으로 true 로 돌아 갑 니 다.
[$a - eq $b] 돌아 가기 true。
-ne
두 개의 수가 같 는 지 확인 하고, 같 지 않 으 면 true 로 돌아 갑 니 다.
[$a - ne $b] 트 루 로 돌아 갑 니 다.
-gt
왼쪽 의 수가 오른쪽 보다 큰 지 확인 하고, 만약 그렇다면 true 로 돌아 갑 니 다.
[$a - gt $b] false 로 돌아 갑 니 다.
-lt
왼쪽 의 수가 오른쪽 보다 작은 지 확인 하고, 그렇다면 트 루 로 돌아 갑 니 다.
[$a - lt $b] 트 루 로 돌아 갑 니 다.
-ge
왼쪽 의 수가 오른쪽 보다 큰 지 확인 하고, 그렇다면 트 루 로 돌아 갑 니 다.
[$a - ge $b] false 로 돌아 갑 니 다.
-le
왼쪽 의 수가 오른쪽 보다 작은 지 확인 하고, 그렇다면 트 루 로 돌아 갑 니 다.
[$a - le $b] 트 루 로 돌아 갑 니 다.
#!/bin/sh
a=10
b=20
if [ $a -eq $b ]
then
echo "$a -eq $b : a is equal to b"
else
echo "$a -eq $b: a is not equal to b"
fi
10 -eq 20: a is not equal to b
불 연산 자
연산 자
설명 하 다.
예 를 들다
!
비 연산, 표현 식 이 true 이면 false 를 되 돌려 줍 니 다. 그렇지 않 으 면 true 를 되 돌려 줍 니 다.
[! false] 트 루 로 돌아 가.
-o
또는 연산, 트 루 표현 식 이 있 으 면 트 루 로 돌아 갑 니 다.
[$a - lt 20 - o $b - gt 100] 돌아 가기 true。
-a
연산 과 함께 두 표현 식 이 모두 true 여야 true 로 돌아 갑 니 다.
[$a - lt 20 - a $b - gt 100] 돌아 가기 false。
예시
#!/bin/sh
a=10
b=20
if [ $a -lt 100 -a $b -gt 15 ]
then
echo "$a -lt 100 -a $b -gt 15 : returns true"
else
echo "$a -lt 100 -a $b -gt 15 : returns false"
fi
10 -lt 100 -a 20 -gt 15 : returns true
문자열 연산 자
연산 자
설명 하 다.
예 를 들다
=
두 문자열 이 같은 지 확인 하고 트 루 로 돌아 갑 니 다.
[$a = $b] false 를 되 돌려 줍 니 다.
!=
두 문자열 이 같은 지 확인 하고 트 루 로 돌아 갑 니 다.
[$a! = $b] 돌아 가기 true。
-z
문자열 길이 가 0 인지, 0 인지 true 로 되 돌아 갑 니 다.
[- z $a] false 로 돌아 갑 니 다.
-n
문자열 길이 가 0 인지, 0 이 아 닌 true 를 되 돌려 줍 니 다.
[- z $a] 트 루 로 돌아 갑 니 다.
str
문자열 이 비어 있 는 지, 비어 있 는 지 true 로 돌아 가지 않 습 니 다.
[$a] 귀환 true。
#!/bin/sh
a="abc"
b="efg"
if [ $a = $b ]
then
echo "$a = $b : a is equal to b"
else
echo "$a = $b: a is not equal to b"
fi
abc = efg: a is not equal to b
파일 테스트 연산 자
파일 테스트 연산 자 는 유 닉 스 파일 의 각종 속성 을 검사 하 는 데 사 용 됩 니 다.
조작 부호
설명 하 다.
예 를 들다
-b file
파일 이 블록 장치 파일 인지 확인 하고, 만약 그렇다면 true 로 돌아 갑 니 다.
[- b $file] false 를 되 돌려 줍 니 다.
-c file
파일 이 문자 장치 파일 인지 확인 하고 트 루 로 돌아 갑 니 다.
[- b $file] 복귀 false。
-d file
파일 이 디 렉 터 리 인지 확인 하고 트 루 로 돌아 갑 니 다.
[- d $file] false 를 되 돌려 줍 니 다.
-f file
파일 이 일반 파일 인지 확인 합 니 다 (디 렉 터 리 도 장치 파일 도 아 닙 니 다). 그렇다면 true 로 돌아 갑 니 다.
[- f $file] 복귀 true。
-g file
파일 에 SGID 비트 가 설정 되 어 있 는 지 확인 하고, 그렇다면 true 로 돌아 갑 니 다.
[- g $file] 복귀 false。
-k file
파일 에 붙 어 있 는 비트 (Sticky Bit) 가 설정 되 어 있 는 지 확인 하고, 그렇다면 true 로 되 돌려 줍 니 다.
[- k $file] 복귀 false。
-p file
파일 이 구명 파이프 인지 확인 하고, 만약 그렇다면 true 로 돌아 갑 니 다.
[- p $file] 복귀 false。
-u file
파일 에 SUID 비트 가 설정 되 어 있 는 지 확인 하고, 그렇다면 true 로 돌아 갑 니 다.
[- u $file] 복귀 false。
-r file
파일 을 읽 을 수 있 는 지 확인 하고 트 루 로 돌아 갑 니 다.
[- r $file] 복귀 true。
-w file
파일 을 쓸 수 있 는 지 확인 하고 트 루 로 돌아 갑 니 다.
[- w $file] 복귀 true。
-x file
파일 이 실 행 될 수 있 는 지 확인 하고 트 루 로 돌아 갑 니 다.
[- x $file] 복귀 true。
-s file
파일 이 비어 있 는 지 확인 합 니 다 (파일 크기 가 0 이상 인지). 비어 있 는 지 true 로 돌아 가지 않 습 니 다.
[- s $file] 복귀 true。
-e file
파일 (디 렉 터 리 포함) 이 존재 하 는 지 확인 하고 트 루 로 돌아 갑 니 다.
[- e $file] 복귀 true。
이것 은 매우 간단 하 니 예 를 들 지 않 겠 다.
2. 문자열 과 주석
문자열 은 셸 프로 그래 밍 에서 가장 자주 사용 되 는 데이터 형식 (숫자 와 문자열 을 제외 하고 다른 유형 도 사용 할 수 없습니다) 입 니 다. 문자열 은 작은 따옴표 도 사용 할 수 있 고 작은 따옴표 도 사용 할 수 있 으 며 따옴표 도 사용 하지 않 아 도 됩 니 다.작은 따옴표 의 차 이 는 PHP 와 유사 하 다.
작은 따옴표
str = 'this is a string' 작은 따옴표 문자열 의 제한:
작은 따옴표 의 모든 문 자 는 그대로 출력 되 며, 작은 따옴표 문자열 의 변 수 는 유효 하지 않 습 니 다.
작은 따옴표 문자열 에 작은 따옴표 가 나타 나 면 안 됩 니 다.
작은 따옴표
your_name='qinjx'str="Hello, I know your are \"$your_name \ "!" 따옴표 의 장점:
따옴표 에 변수 가 있 을 수 있 습 니 다.
따옴표 에 전의 문자 가 나타 날 수 있다.
맞 춤 문자열
your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1
문자열 길이 가 져 오기
string="abcd"echo ${#string} # 4
하위 문자열 추출
string="alibaba is a great company"echo ${string:1:4} # liba
하위 문자열 찾기
string="alibaba is a great company"echo `expr index "$string" is`
3. 배열
정의 배열
셸 에 서 는 괄호 로 배열 을 표시 하고 배열 요 소 는 '빈 칸' 기호 로 나 뉜 다.배열 의 일반적인 형식 을 다음 과 같이 정의 합 니 다. array_name = (value 1... valen) 예:
array_name=(value0 value1 value2 value3)
혹은
array_name=(
value0
value1
value2
value3
)
배열 의 각 분량 을 따로 정의 할 수 있 습 니 다.
array_name[0]=value0
array_name[1]=value1
array_name[2]=value2
연속 적 인 하 표를 사용 하지 않 아 도 되 고 하 표 의 범 위 는 제한 이 없다.
읽 기 배열
배열 요소 값 을 읽 는 일반적인 형식 은: ${array name [index]} 예:
valuen=${array_name[2]}
예 를 들 어:
#!/bin/sh
NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Index: ${NAME[0]}"
echo "Second Index: ${NAME[1]}"
스 크 립 트 실행, 출력:
$./test.sh
First Index: Zara
Second Index: Qadir
@ 또는 * 를 사용 하면 배열 의 모든 요 소 를 가 져 올 수 있 습 니 다. 예 를 들 어:
${array_name[*]}
${array_name[@]}
예 를 들 어:
#!/bin/sh
NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Method: ${NAME[*]}"
echo "Second Method: ${NAME[@]}"
스 크 립 트 실행, 출력:
$./test.sh
First Method: Zara Qadir Mahnaz Ayan Daisy
Second Method: Zara Qadir Mahnaz Ayan Daisy
배열 의 길이 가 져 오기
배열 길 이 를 가 져 오 는 방법 은 문자열 길 이 를 가 져 오 는 방법 과 같 습 니 다. 예 를 들 어:
#
length=${#array_name[@]}
#
length=${#array_name[*]}
#
lengthn=${#array_name[n]}
if - else
계속...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
셸 스 크 립 트 프로 그래 밍: sed 명령 으로 텍스트 편집red 는 온라인 편집기 의 일종 이다.그것 은 한 줄 의 내용 을 한꺼번에 처리한다.작업 중 에 한 고객 의 요 구 를 만 났 습 니 다. 기본 와 이 파이 의 ssid 이름 은 MAC 주소 의 뒷 6 자 리 를 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.