• linux基础知识:shell编程


    shell的建立和执行

    shell文档的建立直接使用vim就可以了,不过运行有多种方式。假设我们建的shell程序叫 test。

    1. bash <test
    2. bash test 参数....
    3. chmod a+x test; PATH=$PATH:.; test。

      alias为字段增加别名,unalias取消别名。alias ll='ls -l';

    shell特殊字符

    • *(星号):匹配任意字符的0次或者多次。f*--> f、fa、fl;.*file--->.peofile.......
    • ?(问号):匹配任意一个字符
    • [字符组]:匹配该字符组所限定的任何一个字符。如f[abcde]/f[a-e]可以匹配 fa,fb,fc,fd。不能匹配其他的
    • !(惊叹号):如果他紧跟在一对方括号的左方括号,表示匹配的不能是里面的东西。           

    模式表达式

    • *(星模式),匹配报刊0次或者多次出现的模式,每个模式用‘|’分割开。如 file*(.c|.o)---->file,file.o,file.c,file.o.c等等,但不会出现file.h之类的东西。
    • +(加模式):和第一个差不多,但是他是至少出现1次。
    • ?(问号模式):和第一个的区别就是,只出现0次或者1次。
    • @(模式表):和第一个的区别,就是只出现1次。
    • !(模式表):除了模式的东西,可以匹配任何表。

    引号

    • 单引号:使用单引号括起来的都是普通字符
    • 双引号:使用双引号括起来的字符(除了$,倒引号~,反斜杠外均作为普通字符对待)。$表示变量替换;倒引号表示命令替换;反斜杠后面的只能是:$、`、"、之中的一个。
    • 倒引号`:将倒引号括起来的字符串被shell解释为命令行。倒引号可以嵌套,内层的倒引号需要用转义。

    输入输出重定向符

    • 输入重定向<:把命令的标准输入重新定向到指定的文件。$bash< ext2;
    • 输出重定向>:把命令的标准输出到指定文件。 $who>abc.
    • 输出附加重定向>>:表示输出到指定文件的末尾。$ps -l >>abcd。
    • 及时文件定向符<<: $mail <<!!fsdffsfsfsf!!。

    命令执行操作符

    • 逻辑与:逻辑与是&&将两个命令联系在一起。命令1&&命令2:如果命令1执行成功,则执行命令2,如果命令1执行不成功,则不执行命令2.
    • 逻辑或:逻辑或是||将两个命令联系在一起。先执行命令1,如果执行不成功,则执行命令2。否则命令1执行成功,就不执行命令2.

    成组命令

    • {}形式;被{}括起来的全部命令,看做语法上的一条命令,出现在管道的一边。注意:{}格式:左括号{ 后面应该有一个空格;右括号}之前应该有一个分号(;);例如 :  {    echo "report of user for `date`"       echo echo "this is `who|wc -l` user loggin in."  who|sort;}|pr
    • ()形式:和{}的=形式上的不同就是,在(后不需要空格;在)前不需要分号(;);但是他们两个之间还有重要的区别。{}的成组命令只是在本shell内执行命令表,不会产生新的进程;用()括起来的成组命令是在新的子shell内执行,需要建立新的子进程。

     输入输出命令

    输入命令:read。

      输入格式:read name;

      参数问题:①:参数和字符串个数相同,由左到右一一赋值;②参数少于字符串个数,由左到右一一赋值,最后一个参数接受全部字符串;③参数个数大于字符串个数;由左到右一一赋值,没有赋值的参数用空值表示。

    输入命令echo:如上列子所示。

    参数置换变量

     操作符是::-;:=;:+;:?四种。                    

    :-示例:                                                                                                                                        

     

    :=示例                                                                                          

     

    :+示例

     

    :?示例

    • :-   :表示,给定变量有值,那么值就等于变量的值;如果给定变量的值为空,那么等于后面给出的字符串值,并且变量的值都不会发生变化。
    • :=  :表示,变量有值,那么值就等于变量值,如果变量值为空,那么变量值和表达式的值都为后面给出字符串的值。
    • :+  :表示,如果变量为空,那么表达式也为空;如果变量不为空,那么表达式的值等于给出字符串的值。
    • :?:表示,如果变量为空,那么现实为shell及脚本名:变量1:字符串。如果变量值不为空,那么表达式的值等于变量的值。

    条件测试

    test -f "$1"或者 [ -f "$1" ];注意[之后有一个空格,]之前有一个空格

    ps:尴尬,我的虚拟机没有调,导致虚拟机里粘贴不出来、。

     

     

  • 相关阅读:
    高效存储过程分页
    c#函数参数
    MonoRail学习:可重复组件ViewComponents的使用
    跨域SSO的实现
    WebSockets基础
    NVelocity用法
    MonoRail MVC应用(2)-构建多层结构的应用程序
    MonoRail学习-入门实例篇
    关于transform属性导致字体模糊的问题
    在小程序中实现收缩展开
  • 原文地址:https://www.cnblogs.com/yangdagaoge/p/9783649.html
Copyright © 2020-2023  润新知