제3 장: Shell 구문 용법

3031 단어
1 절: if 판단
1. 한 갈래
if [ 条件 ]
then
    结果
fi

2. 두 갈래
if [ 条件1 ]      
then
    结果1
else
    结果2
fi

3. 다 분지
if [ 条件1 ]
then
    结果1
elif [ 条件2 ]
then
    结果2
elif [ 条件3 ]
then
    结果3
elif [ 条件4 ]
then
    结果4
elif [ 条件5 ]
then
    结果5
else
    结果6
fi

4. if 내장
if [ 条件1 ]
then
    if [ 条件2 ]    #再满足条件1之后再判断条件2
    then
        结果2
    else
        结果3
    fi
else
    结果4
fi

5. if 판단 문 사례
案例: 输入两个数字 是否为整数 使用if方式 
#!/bin/bash
read -p "请输入第一个数字:" num1
read -p "请输入第二个数字:" num2
if [ -z $num1 ]
then
   echo "您输入的第一个数字为空"&& exit
elif [ -z $num2 ]
then
   echo "您输入的第二个数字为空"&& exit
elif [[  "$num1" =~ ^[0-9]+$ && "$num2" =~ ^[0-9]+$ ]]
then

if [ $num1 -lt $num2 ]
then
   echo "$num1$num2"
else
   echo "$num1=$num2"
fi

else
    echo "您输入了错误的值!"&& exit
fi    

제2 절: for 순환
1. for 구문 형식
for 变量名 in [取值列表]
do
    循环体
done

[root@m01 /scripts]# cat 02for.sh 
#!/bin/bash
IFS=' :.'  #for循环默认以空格为分隔符,来读取数据,这里指定 :. 为分隔符
for i in $(cat /etc/hosts);do
    echo $i
done

2. for 끼 워 넣 기 순환
for 变量名 in [取值列表]
do
    for 变量名 in [取值列表]    
    do                       
        循环体
    done
done

제3 절: while 순환
1. 용법 1: while 뒤 연결 조건문
while [ 条件表达式 ]
do
    循环体
done

2. 용법 2: while 줄 별로 파일 내용 읽 기
while read line
do
    循环体
done

제4 절: 절차 제어 문
1. exit 전체 스 크 립 트 를 종료 하면 2. break 를 계속 실행 하지 않 습 니 다.
제5 절: case 프로 세 스 제어 문
case 变量名4 in
            模式匹配1)
                命令的集合
                    ;;
            模式匹配2)
                命令的集合
                    ;;
            模式匹配3)
                命令的集合
                    ;;
            *)                  *的下一行不需要有;;
            echo USAGE[$0 1|2|3]
esac        

제6 절: 함수
1. 함수 정의 의 세 가지 방식
test1(){
    echo "第一种函数定义方式"
}
function test2(){
    echo "第二种函数定义方式"
}
function test3 {
    echo "第三种函数定义方式"
}

제7 절: 수조
1. 일반 배열 은 숫자 를 색인 으로 만 사용 할 수 있 습 니 다 (아래 표)
第一种定义方式
数组名[索引]=值
[root@web scripts]# array[0]=shell
[root@web scripts]# array[1]=Linux
[root@web scripts]# array[2]=MySQL
第二种定义方式 一次定义多个值
数组名=(值)
[root@web02 ~]# array=(shell mysql [20]=kvm [50]=test)
declare -a    #查看普通数组

1. select 메뉴 정의
#!/bin/bash
main=(
nginx
tomcat
php
)
select i in ${main[*]}
do
    echo $i
done

2. 관련 배열 은 숫자 를 사용 할 수도 있 고 문자열 을 색인 으로 사용 할 수도 있다 (아래 표)
declare -A array      #关联数组需要先定义再使用
[root@web02 ~]# array[index1]=Shell
[root@web02 ~]# array[index2]=Linux
[root@web02 ~]# array[index3]=MySQL

3. 배열 옮 겨 다 니 기
查看数组的索引,值,和索引个数
1. echo ${array[*]}     #遍历数组的值
2. echo ${!array[*]}    #遍历索引
3. echo ${#array[*]}    #查看索引个数

좋은 웹페이지 즐겨찾기