Shell编程

一、Bash:登录linux或打开xterm时,默认的shell为Bash。

      Bash是GNU Project的Shell,GNU Project是Free Software Foundation 的一部分,负责linux下的编程工具。

      用echo $BASH_VERSION,若显示版本号等信息,表示正在使用的是Bash;显示错误信息或无版本号,表示使用不同的shell。可用exec /bin/bash调用Bash。

      功能:1)在Bash命令行中输入命令,由shell解释执行;2)支持shell脚本,可逐条执行组合的命令。

二、创建脚本(用Emacs编辑 :emacs scriptName)

    输入:#! /bin/bash

             echo hello

             echo press enter to exit

             read

    按ctrl+x+s保存。=》输入命令:source scriptName执行该脚本。

    或先标记脚本的可执行属性,用命令:chmod a+x scriptName.=》输入命令:./scriptName可直接执行(./表示当前目录)。

三、启动Bash

   由于调用Bash会话进程时,shell可自动执行一个shell脚本。因此可以在bash启动时,执行全部的脚本系统,eg. .profile

四、返回值:在bash提示符或脚本中运行一个命令,该程序都有一个返回值。用echo $?,可显示最后一条命令的退出码。0正常退出,1~127错误退出,大于127表示程序中断退出。

五、命令组合

1.逐条执行:用分号串联

2.条件组合:

OR"||":当第一条命令失败时,才执行第二条命令,直到某命令执行成功或全部执行完)。AND"&&":只有第一条命令成功执行时,才执行第二条命令,直到某命令执行失败或全部执行完。

eg. command1&&command2||command3   <=>   if com1;then com2;else com3

六、通配符

    *:与任意个数的字符匹配。  ?:与一个字符匹配。

   [...](字符类):与其中某个字符匹配。  [....](范围  a-z,0-100)

七、引号&转义:不希望shell解释命令行中的通配符、变量、特殊字符。

1.将只取文字意义的任何内容用单引号或双引号括起来。双引号允许特殊字符保持特有意义,单引号将屏蔽任何字符的特殊含义,因此更安全。

2.转义字符 / :不能转义非特殊字符。eg. echo hi > "Test File" <=>  echo hi > Test / File.

3.Perl注释:#单行注释。 #!指定负责执行脚本的解释器的名字。

八、重定向&管道

 输出重定向>: 获得屏幕上显示的内容,保存到文件中;输入重定向<:用文件代替键盘输入。

 管道:用于串联命令,将上一命令的输出作为下一命令的输入。可以使所有命令同时执行,且避免产生中间文件。

 eg. ls -l directoryName > fileName,cat fileName

 标准错误处理重定向: ls -l 不存在目录名 > fileName.err , cat fileName.err

 若原文件已存在,则完全替换;若在原文件末尾添加,用>>

九、变量

赋值 $variableName=value 。 获取变量值 $variableName 。 删除变量 unset variableName.

环境变量:可由其他程序传递给脚本;在脚本中调用的任何程序,将继承环境变量。用set命令获取当前上下文中的全部变量。

eg. $LESS=-i

      $export LESS

十、函数  (VS 脚本:都可用于完成重复性任务)

  脚本需由独立进程调用并控制,不能修改当前shell上下文中的变量。

  条件:if list; then list; [elif list; then list; ]....[else list; ] fi

           case word in [(pattern [| pattern]...) list;;]...esac

  循环:while list; do list; done

           for name [in word; ] do list; done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值