shell语法-流程控制

本文介绍了Shell编程中的流程控制,包括字符串比较、算术比较和文件条件测试等。讲解了test命令的各种用法,如判断字符串是否相等、是否为空,以及文件是否存在、权限等。此外,还概述了if、elif、for、while和case语句的使用,为Shell脚本编写提供了基础指南。
摘要由CSDN通过智能技术生成

test或[命令

例:

if test -f fred.c #if [ -f fred.c ]两个完全等价
then
...
fi

这个命令是判断fred.c文件存不存在, 使用 [ 的时候要注意, 后面要留个空格。

test命令可以使用的条件类型归为三类:

字符串比较

string1=string2 //两个字符串相同为真

string1!=string2 //两个字符串不相同为真

-n string //字符串不为空, 结果为真

-z string //字符串为空, 结果为真


算术比较

== : -eq

!=: -ne

>: -gt

<: -lt

>=: -ge

<=: le

!: !


文件有关的条件测式

-d file //文件是目录 为真

-e file //文件存在 为真

-f file //文件存在 为真

-g file //文件的set-group-id位被设置 为真, 授予了程序其所在组的访问权限

-r file //文件可读 为真

-s file //文件大小不为0 为真

-u file //文件的set-user-id位被设置 为真, 授予了程序其拥有者的访问权限而不是其使用者的访问权限

-w file //文件可写 为真

-x file //文件可执行 为真


if 语句

if 条件

then

    //do...

else #可选的

    //do...

fi

elif语句

if 条件
then
    //do...
elif 条件
then
    //do...
fi

for语句

for 值 in 集合
do
   //do..
done

例:

#/bin/sh
for file in $(ls *.sh); do
   lpr $file
done
exit 0
 可以使用 $()来组织集合内容, 可以是多个变量值或是一个shell指令


while语句

while 条件
   do
   //do...
done

until语句

until 条件
   do
   //do...
done

这里需要区别while语句的是, while到条件满足时循环, until到条件不满足时循环


case语句

case 值 in
   分支) //do...;;
   分支) //do...;;
   分支|分支|分支) //do...;;

注意这里的 ) 和;;符号

例:

#!/bin/sh

read mon

case $mon in
 y | yes) 
   echo "so good it is be "
   echo yes;;
 n) echo no;;
 N) echo no;;
esac


exit 0

AND(&&)列表

表达式1 && 表达式2  && 表达式3

从左开始执行, 命令返回的是true就继续执行,  直到命令返回false, 列表终止执行


OR(||)列表

表达式1 || 表达式2  || 表达式3

从左开始执行, 命令返回false就继续执行, 直到命令返回true,列表终止执行


语句块:

#!/bin/sh


echo "come on" &&
{
   echo yes
   echo "This is just a test"
   echo "done!!!"
}


exit 0
可以将多条语句放在{ 和 } 之间, 这样就会执行块里面的所有语句


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值