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....
  • 相关阅读:
    dnsever 邮件记录
    用于显示上个月和下个月_PHP
    JSON学习
    ASP生成新会员编号
    godaddy_关于产品退款
    Switch Case语句中多个值匹配同一个代码块的写法
    网闸与防火墙的比较
    bench.sh 跑分测速
    Kcptun加速SS
    linux 安全狗
  • 原文地址:https://www.cnblogs.com/iplus/p/4464673.html
Copyright © 2011-2022 走看看