重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

linux的shell编程方法有哪些

本篇内容主要讲解“linux的shell编程方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux的shell编程方法有哪些”吧!

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、雅安服务器托管、营销软件、网站建设、陈仓网站维护、网站推广。

一、for和while循环结构

在写这个之前,还是提示大家一下,这和我们c、c++里面的写的for、whil循环结构思想一样,只是规则稍微有点不一样仅此而已。

1、for循环结构格式和实战演示:

a、for循环书写格式:

for 变量名 in  取值列表
do
   命令序列
done
 

b、案例演示:

#!/bin/bash
for i in 1 2 3 4 5
do
    echo $i
done
 

演示结果:

root@txp-virtual-machine:/home/txp# source test.sh
1
2
3
4
5
 

2、while循环结构格式和实战演示:

a、while循环书写格式:

while 条件测试操作
do
   命令序列
done
 

b、案例演示:

#!/bin/bash
i=1
j=10
while [ $i -lt $j ]
do
    echo $i
    i=$(($i+1))
done
 

演示结果:

root@txp-virtual-machine:/home/txp# source test.sh
1
2
3
4
5
6
7
8
9
 

注意:while后面的[]两边都有空格,[]后面有分号分号(如果do放在一行的话),i++的写法中有两层括号。

二、case语句:

shell中的case语句天生没有break,也不需要break,和C语言中的switch case不同。shell中的case默认就是匹配上哪个执行哪个,不会说执行完了还去执行后面的其他case(就好像shell中的case语言默认都带了break)。

1、case语句的格式书写:

case 变量值 in
模式1)
    命令序列1
    ;;
模式2)
    命令序列2
    ;;
    .......
*)
   默认命令序列
esac
 

2、案例演示:


#!/bin/bash
var=9;
case $var in
8)
  echo "8"
  ;;
9)
  echo "9"
  ;;
esac
 

演示结果:

root@txp-virtual-machine:/home/txp# source test.sh
9
 

三、调用shell程序的传参

不知大家看到这个,有没有想到我们c语言里面int main 函数的标准写法呢:

int main(int argc , char *argv[])
 

之前的c语言系列文章里面有介绍这个(c语言main函数里的参数argv和argc解析),这里就不再介绍了。没错我们的shell接收用户的传参和这个思想类似的,在我们shell里面传参规则是:

$0对应的是当前Shell脚本程序的名称

$#对应的是总共有几个参数

$*对应的是所有位置的参数值

$?对应的是显示上一次命令的执行返回值

$1、$2、$3……则分别对应着第N个位置的参数值
 

我们具体来写一个案例演示:

#!/bin/bash
echo $0 $? $* $# $1 $2 $3
 

演示结果:

root@txp-virtual-machine:/home/txp# source test.sh aa bb cc
bash 0 aa bb cc 3 aa bb cc
 

这里稍微再注意我们c语言的传参:

C语言:./a.out aa bb cc 	argc = 4, argv[0] = ./a.out, argv[1]是第一个有效参数····

注意到这里argc等于4,它把argv[0]也统计进去了;而我们shell当中是没有把$0统计到传入的参数统计当中去哦

到此,相信大家对“linux的shell编程方法有哪些”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


标题名称:linux的shell编程方法有哪些
文章来源:http://cqcxhl.com/article/pesggc.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP