《Linux程序设计》——shell程序设计

一、shell

 1、什么是shell:一个作为用户和Linux系统间接口的程序,它允许用户向操作系统输入需要执行的命令。

 2、Linux安装的标准shell:GNU工具集中的bash。

 3、常用shell(P18 表2-1)

 4、作为程序设计语言的shell。



二、管道和重定向

 1、重定向输出

  1)、>:把标准输出重定向一个文件中。

  2)、》:将输出内容附加到一个文件中。

  3)、对标准错误重定向,需要把重定向文件描述符编号加到>操作符前面。(2>)

 2、重定向输入(<)

 3、管道

  1)、|:用其来链接进程。

    注意:如果你有一系列命令需要执行,相应的输出文件是在这一组命令被创建的同时立刻被创建或写入的,所以绝不要在命令流中重复使用相同的文件名。



三、shell的语法

 1、变量

  1)、在shell中通过在变量名前加一个$符号来访问它的内容。

  2)、引号

    I、一般情况下,脚本文件中的参数以空白字符分隔,如果你想在一个参数中包含一个或多个空白字符,就必须给它加上引号。

   II、把$变量表达式放在双引号中,程序执行到这一行时就会把变量替换为它的值。

   III、把$变量表达式放在单引号中,程序执行到这一行时不会发生替换。

   VI、可以在$字符加上一个、字符以取消他的特殊含义。

  3)、环境变量(P25  表2-2)

  4)、参数变量(P26  表2-3)

   I、如果脚本程序在调用时带有参数,一些额外的变量就会被创建。即使没有传递任何参数,环境变量$#依然存在,只不过值是0。


 2、条件(text或[)

  1)、字符串比较(P28  表2-3)

  2)、算数比较(P28  表2-4)

  3)、文件条件测试(P28  表2-5)


 3、控制结构

  1)、if语句

    if  condition

    then

        statements

    else

       statements

   fi

  2)、elif语句

  

    if  condition

    then

        statements

   elif  condition

   . . .

    else

       statements

   fi

 3)、for语句

   for  variable  in  values

   do

        statements

   done

 4)、while语句

   while conditions  do

        statements

   done

 5)、until语句

   until  condition

   do

       statements

   done

 6)、case语句

   case  variable  in

       pattern  [ | pattern ] ...)  statements;;

       pattern  [ | pattern ] ...)  statements;;

       ......

   esac

 7)、命令列表

   I、AND列表

    statements1  &&  statements2  &&  statements3 &&   . . . .

   II、OR列表

    statements1  ||  statements2  ||  statements3  ||   . . . .

   III、[ -f  file_one ]  && command  for  true  ||  command  for  false

 8)、语句块(用花括号{}来构造一个语句块)


4、函数

   function_name(){
      statements

   }


 5、命令

  1)、break命令(条件未满足之前,跳出for、while或until循环,也可以为break命令提供一个额外的数值来表明需要跳出的循环层数)

  2)、:命令(冒号命令是一个空命令,它偶尔会被用于简化逻辑,相当于true的一个别名,此外冒号命令也用于注释)

  3)、continue命令(使for、while或until循环跳到下一次循环继续执行)

  4)、.命令(点命令用于在当前shell中执行命令)

  5)、echo命令(使用恶臭命令来输出结尾带有换行符的字符串)

  6)、eval命令(允许你对参数进行求值,通常不会以单个命令的形式存在)

  7)、exec命令(将当前shell替换为一个不同的程序,修改当前文件描述符)

  8)、exit  n命令(使脚本语言以退出码n结束运行,退出码n(P46  表2-7))

  9)、export命令(将作为他的参数的变量导入到子shell中,并使之在子shell中有效)

  10)、expr命令(将参数当作表达式来求值,求值计算(P48  表2-8))

  11)、printf命令(转义序列(P48  表2-9),字符转换限定符(P48  表2-10))

  12)、return命令(使函数返回,如果没有指定参数,默认返回最后一条命令额退出码)

  13)、set命令(为shell设置参数变量)

  14)、shift命令(把所有的参数变量左移一个位置)

  15)、trap命令(用于指定在接受到信号后将要采取的行动,信号(P50  表2-11))

  16)、unset命令(从环境中删除变量或函数)

  17)、正向表达式和另外两个有用的命令

    I、另外两个有用的命令

    A)、find命令

    B)、grep命令

   II、正侧表达式

    A)、特殊字符(P56  表2-17)

    B)、匹配模式(P56  表2-18)

    C)、选项(P57  表2-19)


 6、命令的执行

  1)、算数扩展($((....)))

  2)、参数扩展((P60  表2-20))


 7、here文档

  1)、允许一条命令在获得输入数据时就好像在读取一个文件或键盘一样,而实际上是从脚本语言中等到数据。


 8、调试脚本程序(P63  表2-21)



四、dialog工具

 1、对话框主要类型(P64  表2-22)

 2、参数(P64  表2-23)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值