zoukankan      html  css  js  c++  java
  • Linux笔记——shell补充:参数传递&函数等

    列表:

    Linux笔记——vim常用操作及扩展补充[手册]

    Linux笔记——linux常用命令集合

    Linux笔记——命令:awk

    Linux笔记——命令:sed

    Linux笔记——命令:grep

    Linux笔记——命令:find

    Linux笔记——命令:Sort,uniq,join,cut,paste,split

    Linux笔记——shell基础:变量&本地变量&位置变量&特定变量参数

    Linux笔记——条件测试test

    Linux笔记——控制流

    Linux笔记——shell补充:参数传递&函数等

    Linux笔记——正则表达式入门及应用

    Linux笔记——linux进程

    Linux笔记——SVN命令总结

    rpm&yum包管理命令总结

     

    鉴于博客,表格&排版&颜色标记等等无法显示,大家可以下载这个笔记的资源

    12个文档,不需要积分,以目录+表格+颜色标记形式

    下载资源地址http://download.csdn.net/detail/wklken/3815477

     

    The end!  Thx!       wklken的笔记

    -----------------------------------------------


    函数定义:

    function_name(){

       statements

    }

    必须在调用一个函数之前对它进行定义

    shell中不存在向前声明

    调用

    function_name params

    可以通过return命令让函数返回数字值,或者echo一个字符串返回

    退出状态:

    退出值为 0 表示成功

    退出值非 0 表示失败

    当一个命令因为严重的信号 N 退出时,bash 将使用 128+N 作为它的退出状态

    出现一个信号

    128及以上

    命令没找到:

    127

    文件找到但不可执行:

    126

    展开或重定向中的错误:脚本程序可使用的错误代码

    1-125

    所有的内建命令在用法错误时返回

    2

    成功

    0

    参数传递:

    参数使用与位置参数一样

    $1, $2, ……

    $@, $*

    $#

    func $var1 $var2

    注:变量中间用空格、Tab分割

    返回值

    return:主要用来返回退出状态,即$?

    0 <= 返回值(整数) <= 255;

    0 为无错误;

    非0 为有错误;

    注:如果返回其他数据,可以使用echo或者全局变量

    return_var=`func $var1 $var2`

    标准I/O

    Linux 默认提供了三个I/O 通道:

    Standard Input

    (标准输入,文件描述符:0) – 默认是键盘

    Standard Output

    (标准输出,文件描述符:1) – 默认是终端

    Standard Error

    (标准错误,文件描述符:2) – 默认是终端

    调试脚本

    命令行选项

    Set选项

    说明

    sh –n  <script>

    set –o noexec

    set -n

    只检查语法错误,不执行命令

    sh –v  <script>

    set –o verbose

    set –v

    在执行命令之前回显它们

    sh –x  <script>

    set –o xtrace

    set –x

    在处理命令之后回显它们

    sh –u  <script>

    set –o nounset

    set -u

    如果使用了未定义的变量,就给出出错信息

    -o选项启用设置   +o选项取消设置

    AND列表

    作用:只有前面所有的命令都执行成功的情况下才执行最后一条命令

    Statement1 && statement2 && statement3 && …..

    从左到右顺序执行每条命令,如果一条命令返回true,右边的下一条命令才能执行

    &&命令作用是检查前一条命令的返回值

    if [ -f file_one ] && echo “hello” && [ -f file_two ] && echo “ there”

    then

       ……

    fi

    OR列表

    作用:持续执行一系列命令,知道有一条命令成功为止

    Statement1 || statement2 || statement3 || ….

    从左顺序开始执行每条命令,若是一条命令返回false,它右边的下一条命令才能够被执行,如此持续到知道有一条命令返回true,或者列表中所有命令都执行完毕

    if [ -f file_one ] || echo “hello” || echo “ there”

    内置命令补充:

    :命令

    冒号(:)是一个空命令,偶尔用于简化条件逻辑,相当于true的一个别名。

    例如 while :

    也用于在变量的条件设置中

    例如 : ${var:=value}

    if ….;then

      :

    fi

    .命令

    用于在当前shell中执行命令

    . ./shell_script 

    相当于source命令

    在执行脚本程序中列出的命令时,使用的是调用该脚本程序的同一个shell

    echo命令

    输出结尾带有换行符的字符串

    echo –n “string to output”              bash风格去换行符

    eval命令

    允许对参数进行求值,是shell的内置命令

    即允许代码被随时生成和运行

    exec命令

    两种用法 

    典型:将当前shell替换为一个不同的程序

    exec wall “Thanks for all the fish”

    第二种用法修改当前文件描述符

    exec 3 < afile

    exit n命令

    使脚本程序以退出码n结束运行

    若是在脚本退出时不指定退出状态,那么该脚本最后一条被执行命令状态将被用作返回值

    export命令

    将作为它参数的变量导出到子shell中,并使之在子shell中有效

    export把自己的参数创建为一个环境变量,而这个环境变量可以被当前程序调用的其他脚本和程序看见

    被导出变量构成从该shell衍生的任何子进程的环境变量

    expr命令

    将它的参数当做一个表达式来求值,最常见用法简单数学运算

    x=`expr $x + 1`  注意,运算符两边空格必须

    x=$(expr $x + 1)

    printf命令

    格式化输出

    d 十进制

    C 一个字符

    S 一个字符串

    % 一个%字符

    printf “%s\n” hello

    printf “%s %d” “Hi” 6

    return命令

    使函数返回,可有一个数值参数,作为该函数的返回值,如果不带参数,return命令默认返回最后一条命令的退出码

    set命令

    为shell设置参数变量

    set $(date)

    echo The month is $2

    即参数的值作为当前脚本参数列表了

    shift命令

    把所有参数变量左移一个位置,是$2->$1   $3->$2原来$1被丢弃,$0保持不变

    可带参数表示左移一个数值参数

    trap命令

    用于指定接收到信号后要采取的行动

    常见用途:在脚本程序被中断时完成清理工作

    trap command signal

    注:脚本程序通常是从上到下顺序解释执行的,必须在想保护那部分代码之前指定trap命令

    HUP(1) 挂起,中断掉线或用户退出 引发

    INT(2)中断 ctrl+c组合键发生

    QUIT(3)退出,ctrl+\组合键发生

    ABRT(6)中止,默写严重的执行错误引发

    ALRM(14)报警,用来处理超时

    TERM(15)终止,系统关机时发出

    unset命令

    从环境变量中删除变量或函数

    不能删除shell本身定义的只读变量

    BP:

    使用命令扩展:

    $()  代替反引号``

    $(( ….  )) 代替expr算术运算

    参数扩展:

    for I in 1 2

    do

      process ${i}_tmp

    done

    ${param:-default}   如果param为空,设为默认值

    ${#param}    给出param长度

    ${param%word} 从param尾部开始,删除与word匹配的最小部分,返回剩余部分

    ${param%%word}                                      长

    ${param#word}           头部                         小

    ${param##word}          头部                         长

    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    Visifire正式版(v1.1)发布
    [转]PSP机能强大!已能模拟运行WINDOWS系统?
    在Silverlight+WCF中应用以角色为基础的安全模式(一)基础篇之角色为基础的安全模式简介 Virus
    C#的加密解密算法,包括Silverlight的MD5算法 Virus
    MMORPG programming in Silverlight Tutorial (10)Implement the sprite’s 2D animation (Part IV)
    Game Script: Rescue Bill Gates
    MMORPG programming in Silverlight Tutorial (9)KeyFrame Animation
    MMORPG programming in Silverlight Tutorial (5)Implement the sprite’s 2D animation (Part II)
    MMORPG programming in Silverlight Tutorial (7)Perfect animation
    MMORPG programming in Silverlight Tutorial (3)Animate the object (Part III)
  • 原文地址:https://www.cnblogs.com/iplus/p/4464673.html
Copyright © 2011-2022 走看看