前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell 脚本编程

shell 脚本编程

作者头像
用户6754675
修改2020-04-15 19:02:54
3980
修改2020-04-15 19:02:54
举报
文章被收录于专栏:嵌入式单片机嵌入式单片机

  从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。

  Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),等等。不同的Shell语言的语法有所不同,所以不能交换使用。每种Shell都有其特色之处,基本上,掌握其中任何一种 就足够了。在本文中,我们关注的重点是Bash,也就是Bourne Again Shell,由于易用和免费,Bash在日常工作中被广泛使用;同时,Bash也是大多数Linux系统默认的Shell。在一般情况下,人们并不区分 Bourne Shell和Bourne Again Shell,所以,在下面的文字中,我们可以看到#!/bin/sh,它同样也可以改为#!/bin/bash。

  一.基本语法

  1.变量:export 变量全局

C代码

  1. #!/bin/bash
  2.  num=$1export num  
  3.  echo $num  

  2.条件判断

C代码

  1. if [[ condition ]]; then  
  2.  #statements  
  3. if
  4.  #!/bin/bashif [[ $1 == 1 ]]; then  
  5.  echo $1  
  6. else
  7.  echo "value is not 1"
  8. if

  常用的判断参数列表

  3.case分支

C代码

  1. #!/bin/bash
  2. case $1 in  

  1)

C代码

  1. echo "the value is 1";;  

  2)

C代码

  1. echo "the value is 2";;  

  3)

C代码

  1. echo "the value is 3";;  

  4)

C代码

  1. echo "the value is 4";;  
  2.   *)  
  3.   echo "defult value"
  4.   esac  

  4.循环语句for

C代码

  1. #方法1for (( i = 0; i < 10; i++ )); do
  2. #statements
  3. done#方法2for i in words; do #statementsdone  

  例程:

C代码

  1. #!/bin/bash
  2. for (( i = 0; i < 10; i++ )); do
  3.  echo "the value is $i"
  4.  done  

  5.while循环

C代码

  1. while [[ condition ]]; do
  2.  #statements  
  3.  done  

  例程:

C代码

  1. #!/bin/bash
  2.  i=$1  
  3. while [[ $i != 0 ]];  
  4. do
  5.  echo "value is $i"
  6.  let "i=i-1"
  7.  done  

  6,函数

  1、必须在调用函数地方之前,声明函数,shell脚本是逐行运行。不会像其它语言一样先预编译。一次必须在使用函数前先声明函数。

  2、total=$(fSum 3 2); 通过这种调用方法,我们清楚知道,在shell 中 单括号里面,可以是:命令语句。 因此,我们可以将shell中函数,看作是定义一个新的命令,它是命令,因此 各个输入参数直接用 空格分隔。 一次,命令里面获得参数方法可以通过:$0…$n得到。 $0代表函数本身。

  3、函数返回值,只能通过$? 系统变量获得,直接通过=,获得是空值。其实,我们按照上面一条理解,知道函数是一个命令,在shell获得命令返回值,都需要通过$?获得。

C代码

  1. #!/bin/bash
  2.  function add()  
  3.  {  
  4.  echo $1 $2  
  5. return $(($1+$2))  
  6.  }  
  7.  value=$(add $1 $2);  
  8.  echo $value,$?  

  7.数组

C代码

  1. # 取得数组元素的个数
  2.  length=${#array_name[@]}  
  3.  # 或者  
  4.  length=${#array_name[*]}  
  5.  # 取得数组单个元素的长度  
  6.  lengthn=${#array_name[n]}  

  读取数组元素值的一般格式是:

C代码

  1. ${array_name[index]}valuen=${array_name[2]}  

  例程

C代码

  1. #!/bin/bash
  2.  name=(a b c d e f g)  
  3.  length=${#name[@]}  
  4.  echo $length  
  5. for (( i = 0; i < $length; i++ )); do
  6.  echo valuen=${name[$i]}  
  7.  done  

 分享一个关于shell编程快速编程入门的资料

http://www.makeru.com.cn/live/3485_1489.html?s=45051

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档