Linux学习之shell脚本——条件语句 与循环语句
发布时间:2023-02-03 11:04:13 所属栏目:Linux 来源:
导读: if条件语句
和其他语言类比,我们只需要了解if,if...else,if..else if...else...三种形式在shell中的使用。
在shell中,最基本的if的语法如下
if [ 条件 ]
then
符合条
和其他语言类比,我们只需要了解if,if...else,if..else if...else...三种形式在shell中的使用。
在shell中,最基本的if的语法如下
if [ 条件 ]
then
符合条
|
if条件语句 和其他语言类比,我们只需要了解if,if...else,if..else if...else...三种形式在shell中的使用。 在shell中,最基本的if的语法如下 if [ 条件 ] then 符合条件的执行逻辑 fi 或 if [ 条件 ]; then 符合条件的执行逻辑 fi 两种的区别在于if和then是否写在一行,如果写在一行使用;隔开。 fi表示if语句的结束,及代码范围。 注意:[]中的条件两边都有一个空格。 if...else的在shell中的写法如下: if [ 条件 ] then 符合条件执行的逻辑 else 不符合条件执行的逻辑 fi if...else if...else在shell中的写法: if [ 条件 1 ] then 做 1 的事情 elif [ 条件 2 ] then 做 2 的事情 elif [ 条件 3 ] then 做 3 的事情 else 做其他事情 fi 最后看一个例子: #!/bin/bash if [ $1 = "one" ] then echo "1" elif [ $1 = "two" ] then echo "2" else echo "3" fi 在if判断的条件里,使用的是=号,这有区别于其他编程语言,但同样shell可以使用==号。注意=号两边有空格,如果不加空格,会认为是赋值操作。 很简单,就是判断输入,显示不同的结果,看一下执行结果 [root@iZ2zebizp6le568407aeayZ shell]# ./condition.sh two 2 条件测试 if中关键的便是判断条件,那么可以做哪些条件判断呢? 字符串 数字 测试文件 与,或,非判断条件 注意:他们的使用方式不同。 与和或是以[]为一个整体,如下 if [ 条件 ] && [ 条件 ] then 符合条件的执行逻辑 fi 而非的使用方式如下 if [ ! 条件 ] then 符合条件的执行逻辑 fi case 多条件选择 在最初的if中编写了例子 if [ $1 = "one" ] then echo "1" elif [ $1 = "two" ] then echo "2" else echo "3" fi 可以将其修改为case语句:修改之后的如下 #!/bin/bash case $1 in "one") echo "1" ;; "two") echo "2" ;; *) echo "3" ;; esac case $1 in:类似于其他语言的switch(xxx)一样。 "one"):匹配项,类似于case X:。 echo "1":符合匹配项执行的逻辑。 ;;: 类似于break;结束。 *):类似于default。 esac:case语句的结束标记。 注意:匹配项可以用正则表达式进行匹配。 看一下运行的结果 [root@iZ2zebizp6le568407aeayZ shell]# ./condition_case.sh two 2 while 循环 while循环的语法如下: while [ 条件 ] do 做某些事 done 或 while [ 条件 ]; do 做某些事 done 注意:条件为真是,才会做do之后的逻辑,为什么强调这个呢linux语句,因为shell中有一个until语法。和其正好相反。 until循环 while循环表示如果条件为真,则执行do中的逻辑,而until和while正好相反,虽然语法类似 until [ 条件 ] do 做某些事 done 或 until [ 条件 ]; do 做某些事 done 但是,其是当条件为false是,才会走do之后的逻辑。 for循环 for循环的语法如下: for 变量 in '值1' '值2' '值3' ... '值n' do 做某些事 done 当然我们可以在in之后不用谢一大串,而是用变量去代替。 #!/bin/bash fileList=`ls` for file in $fileList do echo "file found : $file" done 首先通过ls命令查找当前目录下的所有文件。 其次通过for循环遍历变量,并打印。 运行的结果如下: [root@iZ2zebizp6le568407aeayZ shell]# ./for.sh file found : condition_case.sh file found : condition.sh file found : for.sh file found : read_variable.sh file found : test.sh file found : variable_array.sh file found : variable_porams.sh file found : variable.sh (编辑:云计算网_汕头站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐


浙公网安备 33038102330478号