zoukankan      html  css  js  c++  java
  • bash学习

    一 shell区别及运行方法

        shell一般指 shell script脚本;而广义是指shell终端是和操作系统沟通的桥梁,一般有Bsh和Bash.

        运行方法:

    1. 按可执行程序执行:先编写脚本文件filename.sh(以#!/bin/sh作为首行,说明后面的按该shell执行);然后用chmode -x filename.sh修改成可执行权限;然后以./finename.sh来执行
    2. 直接执行:./bin/sh filename.sh来执行。当然此时文件不需要以#!/bin/sh作为首行.

        2种注释:

    1. 单行注释:#
    2. 多行注释:其中的2个/可以换成其它字符
      :<</
      
      
      /

    二 变量;

    1. 由字母数字下划线组成,变量名与=号之间无空格
    2. 变量使用:${var}
    3. 数组 arry={val1 var2 var3)     
    4. 数组的调用${arry[n]}   ,整个数组${arry[@]},数组元素的个数${#arry[@]}
    5. 字符串:单引号中不能集合变量;双引号可以。字符串长度 str="abcd"  len=${#str};同时可以切片求子串或查找字符 ab==${str:0:2}
    6. 删除变量 unset var

    三 变量传递:

        在.sh脚本中用$n来接收传递的参数,一般第一个参数$0一般是文件本身,其它参数从1开始。在终端中直接按 ./filename.sh para1 para2 ....来传递参数。

        参数的总个数$#来表示。所有的参数的表示$*或者$@前者等于把所有的参数作为一个字符串;而后者则将每一个参数作为一个字符串。

        【】中间可以对参数进行一些比较和判断。前后都要有空格

     四 运算:

         表达式:`expr  $a * $b` ,注意expr后的字符时esc键下面的的字符不是单引号。乘号*前需要加

         关系运算符:-eq  -ne  ;-ge -lt;  -ge  -le;

         布尔运算符:-a,-o,!

          逻辑运算符:&&,||

          字符串运算符:=,!=;  -z /-n/$分别代表长度为0,不为0,字符串为空

         温控按摩测试运算符;

    五 其它命令:

         echo str  >>filename.sh  #输出到文件。

        read var:#从标准输入中读取一行给shell变量var

        printf format-string [arguments...]

        test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试.

       let:

       grep :是从给定字符串中寻找匹配内容的命令.如echo "Hello World !" | grep -e Hello   echo $?    #结果为Hello World !    0#成功在hello word!中找到匹配的hello字符串

      

    六流程控制:

      5.1分支结构:

        

    f condition1
    then
        command1
    elif condition2 
    then 
        command2
    else
        commandN
    fi

    5.2 多分支选择:

      

    casein
    模式1)
        command1
        command2
        ...
        commandN
        ;;
    模式2)
        command1
        command2
        ...
        commandN
        ;;
    *)#类似于defualut
        break/continu  #跳出循环的2种类似C的方法
      ;;
    esac

    5.3 循环结构:

     1 #for循环
     2 for var in item1 item2 ... itemN
     3 do
     4     command1
     5     command2
     6     ...
     7     commandN
     8 done
     9 
    10 
    11 #while循环
    12 while condition
    13 do
    14     command
    15 done
    16 
    17 #until循环
    18 until condition
    19 do
    20     command
    21 done
    22 
    23 #超级循环的几种格式:
    24 while :
    25 #while true
    26 do
    27     command
    28 done
    29 
    30 for (( ; ; ))

    六 函数:与C大致相同,不同的是

    1.   函数调用时不需要加()
    2. 函数的参数传递:实参直接逐个写,程序里面用$n来或者对应参数。
    3. 函数的返回值:$?     #需要注意的是这需要在函数调用后直接来用,不能跨函数使用;和 C 语言不同,shell 语言中 0 代表 true,0 以外的值代表 false。

    七 重定向:标准输入、标准输出,错误输出,

      command >file:(覆盖方式)重定向输入到file中;command >>file:(追加末尾方式)重定向输入到file中。

         

          /dev/null 文件:当重定向到这里时,相当于禁止输出。因为写进去的内容被丢弃,读时啥也读不到。

    八文件的包含:

       . filename # 注意点号(.)和文件名中间有一空格 source filename

  • 相关阅读:
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
  • 原文地址:https://www.cnblogs.com/jieruishu/p/14991402.html
Copyright © 2011-2022 走看看