Shell笔记--使用条件判断、流程控制和读取控制台输入

​​​​​​​

目录

1--常用判断条件

1-1--整数比较

1-2--文件权限

1-3--文件类型

1-4--实例测试

2--流程控制

2-1--if判断

2-2--case语句

2-3--for循环

2-4--While循环

3--read读取控制台输入


1--常用判断条件

        Shell 可通过整数比较、文件权限和文件类型等方面进行判断;

1-1--整数比较

-lt 表示小于(less than);

-le 表示小于等于(less equal);

-eq 表示等于(equal);

-gt 表示大于(greater than);

-ge 表示大于等于(greater equal);

-ne 表示不等于(Not equal);

1-2--文件权限

-r 有读的权限(read);

-w 有写的权限(write);

-x 有执行的权限(execute);

1-3--文件类型

-f 文件存在且是一个常规的文件(file);

-e 文件存在(existence);

-d 文件存在且是一个目录(directory);

1-4--实例测试

基本语法:[ condition ](注意 condition 前后要有空格);

不涉及判断条件时,条件非空即为 true;即[ xxxx ]为 true,[]为 false;

[ 10 -gt 9 ]
echo $?

[ 10 -lt 9 ]
echo $?

[ -e ./test.sh ]

echo $?

2--流程控制

2-1--if判断

        基本语法:

if [ condition ];then
        xxxxx
fi
或
if [condition]
   then
        xxxxx
fi

注意事项:

        [ condition ] 中中括号和条件表达式之间必须有空格;

        if 之后必须有空格;

        实例代码:输入一个数字,若为1,则输出 Hello Shell1;若为2,则输出 Hello Shell2;若为其它,则输出 GoodBye Shell!;

#!/bin/bash

if [ $1 -eq 1 ];then
  echo "Hello Shell1"
elif [ $1 -eq 2 ];then
  echo "Hello Shell2"
else
  echo "GoodBye Shell!"
fi

2-2--case语句

        基本语法:

case $var in
value1)
        xxxxx
;;
value2)
        xxxxx
;;
*)
        xxxxx
;;
esac

        注意事项:

① case 行尾必须为单词 "in",每一个模式匹配必须以右括号 ")" 结束;

② 双分号 ";;" 表示命令序列结束,相当于 break;

③ "*)" 表示默认模式,相当于default;

        代码实例:输入一个数字,若为1,则输出 Hello Shell1;若为2,则输出 Hello Shell2;若为其它,则输出 GoodBye Shell!;

#!/bin/bash

case $1 in
1)
        echo "Hello Shell1"
;;
2)      echo "Hello Shell2"
;;
*)      echo "GoodBye Shell"
;;
esac

2-3--for循环

① 基本用法1

for((初始值; 循环控制条件; 变量变化))
do
    xxxxxx
done

        实例代码1:求解从 1 到 100 的加和:

#!/bin/bash

s=0
for((i=1; i<=100; i++))
do
        s=$[$s+$i]
done

echo $s

② 基本用法2

for var in value1 value2 ...
do
    xxxxxxxx
done

        实例代码2:

#!/bin/bash

for i in $*
do
        echo "Param: $i"
done

echo "----------------"

for j in $@
do
        echo "Param: $j"
done

#!/bin/bash

for i in "$*"
do
        echo "Param: $i"
done

echo "----------------"

for j in "$@"
do
        echo "Param: $j"
done

2-4--While循环

基本用法:

while [ condition ]
do
    xxxxxxx
done

代码实例:求解从 1 到 100的累加和:

#!/bin/bash

sum=0
i=1
while [ $i -le 100 ]
do
        sum=$[$sum + $i]
        i=$[$i + 1]
done

echo $sum

3--read读取控制台输入

        基本用法:

read(选项)(参数)

选项:

        -p: 指定读取值的提示符

        -t: 指定读取值的等待时间

参数:

        变量:指定读取值的变量名

        实例代码:

#!/bin/bash

read -t 7 -p "input your name " VAR_NAME

echo "your name is "$VAR_NAME

猜你喜欢

转载自blog.csdn.net/weixin_43863869/article/details/129897436
今日推荐