首页 > 系统服务 > 详细

Linux Shell编程基本知识

时间:2015-11-10 01:49:54      阅读:264      评论:0      收藏:0      [点我收藏+]

  Shell是Linux提供的一种脚本语言,可以完成部分编程操作。从根本上讲Shell仅仅是一个命令解释器,而Shell脚本也就是一个由命令和一些简单的逻辑判断的堆砌。

  所以说学好Shell脚本最重要的因素就是熟悉基本命令的使用。并掌握一些Shell逻辑判断的语句。

  写一个shell脚本首先要声明shebang,也就是:

  #!/bin/bash

  由于Shell可能涉及的东西比较多,我这里只给大家列出来一些常用的东西:

1.命令执行状态结果: #判断语句的关键
  0        #执行成功
  1-255    #执行失败
  
2.shell中的引用:    
   ``    #tab键上的那个点,引用命令的执行结果;等于$()
   ‘‘    #单引号,强引用,变量不会替换
   ""    #双引号,弱引用,变量会替换
   
3.变量赋值及引用:
   赋值:变量名="值"   #引号平时可以不加,但是如果值有空白必须要加;建议加上
   引用:$变量名  或者 ${变量名}  #花括号的意义是为了避免变量名后面有字符,导致变量引用出现错误,例如:
       [root@localhost tmp]# a=good
       [root@localhost tmp]# echo "we are $abye"
        we are
       [root@localhost tmp]#
   #看见了吗?此时引用的不是a,而成了abye,此时{}就派上了用场:
       [root@localhost tmp]# echo "we are ${a}bye"
        we are goodbye
       [root@localhost tmp]#
   ##############懂了吗?########################
   
4.自定义脚本退出码:
   exit [0-255]   0为成功,1-255失败
 #声明一下:
 #   脚本执行后的状态码,取决于最后执行的命令成功与否;

5.位置参数:
 $1/$2...  #脚本的第一个参数,第二个参数
 $@        #脚本的所有参数
 @#        #统计脚本参数的个数
 
6.shell中的逻辑与和逻辑或:
 &&    代表与; #与运算:真&&真=真、真&&假=假、假&&真=假、假&&假=假
 ||    代表或; #或运算:假&&假=假、真&&假=真、假&&真=真、真&&真=真



条件判断:


1.单分支条件判断语句:
 if 条件; then
   语句;    #如果条件判断成功(状态码为0),那么就执行此语句
 fi
 
2.双分支条件判断语句:
  if 条件; then
    语句1;   #如果条件判断成功(状态码为0),那么就执行此语句
  else
    语句2;   #如果条件判断失败(状态码为0-255),那么就执行此语句
  fi
  
3.多分支条件判断语句:
   if 条件1; then
      语句1;        #如果条件判断成功(状态码为0),那么就执行此语句
   elif 条件2; then #如果第一个条件判断失败,则进行此判断
        语句2;      #如果条件判断成功(状态码为0),那么就执行此语句
   elif ...;then
        语句n;
   else            
        语句x;      #如果上面的条件判断失败,那么就执行
   fi


for循环:

for i in list; do 
  循环体;
done
# for是一个列表循环类型,list为一个列表,将i依次赋值给这个列表的数据,直到列表循环完成。
生成列表的方式有很多种:
#  1.放多个数据空格分开,例如 for i in 1 2 3 4; do 意义就是把i依次赋值给这个列表(1,2,3,4)并循环。直到列表循环结束(这里为4次)
#  2.使用{1..100}生成数字列表。意义是循环100次
#  3.使用$(seq 100)生成数字列表。等同于{1..100}


条件测试:

#条件测试使用test EXPRESSION、[ EXPRESSION ]、[[ EXPRESSION ]]符号进行。

1.整数测试:
   #下面的都是双目测试
    -eq  #等于
    -ne  #不等于
    -lt  #小于
    -gt  #大于
    -le  #小于等于
    -ge  #大于等于

2.字符测试:
   #下面的都是双目测试:
        ==     #测试字符串是否相等
        !=     #测试字符串是否不等
        =~     #左侧是字符串,右侧是一个模式;判定左侧的字符串能否被右侧的模式所匹配;只能在[[ xxx =~ x ]]中使用
   #下面的都是单目测试:
        -n     #测试字符串是否不为空
        -z     #测试字符串是否为空

3.文件测试:
    #下面的都是单目测试:
        -e     #测试是否存在;等于-a
        -f     #测试是否为普通文件
        -d     #测试是否为目录文件
        -S     #测试是否为socket文件
        -p     #测试是否为命名管道文件
        -h     #测试是否为链接文件; 等于-L
        -b     #测试是否为块设备文件;
        -c     #测试是否为字符设备文件
        
        -r     #测试是否可读
        -w     #测试是否可写
        -x     #测试是否可执行
        
        -s     #测试文件是否为空

shift替换;  #替换的意义是用来踢掉位置参数

while循环:

while 条件; do
      循环体;
done
#while循环是一个条件判断循环,如果条件满足就开始循环,不满足则退出循环;在while循环应该定一个变量,变量随着while循环发生变化,直到满足退出条件;

while :; do
      循环体;
done
#这个while循环是一个无限循环,直到主动退出;


until循环:

until 条件;do

   循环体;

done

#Until循环和while循环正好相反,如果不满足条件就开始循环,满足则退出;


待补充。



本文出自 “萌Linux” 博客,请务必保留此出处http://minux.blog.51cto.com/8994862/1711203

Linux Shell编程基本知识

原文:http://minux.blog.51cto.com/8994862/1711203

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!