美文网首页
坚持打卡学习第十七天——shell脚本编写五

坚持打卡学习第十七天——shell脚本编写五

作者: 去追星星 | 来源:发表于2022-01-01 13:01 被阅读0次

    shell函数

    (1)一般定义
    图 1

    执行结果

    图 2

    注:

    • 函数定义function fun()或者fun()
    • 参数返回可以加return,不加将最后一条作为返回值返回
    • 函数使用前必须定义,放在脚本开始部分,返回值通过$?来获取
    (2)函数参数
    图 3

    执行结果

    图 4

    注:

    • 获取参数个数n<10,n获取,n>=10,用{n}获取
    • 图 4第十一个参数显示正确因为,$1获取到11拼上后面的1恰好是111(被自己的例子坑到了,想了半天)
    (3)字符说明
    参数处理 说明
    $# 传递到脚本或函数的参数个数
    $* 以一个字符串显示所有向脚本传递的参数
    $$ 脚本运行当前进程ID
    $! 后台运行的最后一个进程ID
    $@ 与$*相同,使用时需要加引号,并在引号中返回每一个参数
    $- 显示shell使用的当前选项,与set命令功能相同
    $? 显示最后命令退出状态,0表示没有错误,反之有错

    shell输入/输出重定向

    命令列表:

    命令 说明
    command > file 输出重定向到file
    command < file 输入重定向到file
    command >> file 输出以追加方式重定向到file
    n > file 将文件描述符为 n 的文件重定向到file
    n >> file 将文件描述符为n的文件以追加方式重定向到file
    n >& m 将输出文件m和n合并
    n <& m 将输入文件m和n合并
    << tag 将开始标记tag和技术标记tag之间的内容作为输入
    echo 新增内容 > test.txt
    

    原有内容被覆盖

    图 5
    echo 新新增内容 >> test.txt
    

    在原来内容上新加

    图 6

    注:一般情况Unix/Linux命令都会打卡三个文件

    • 标准输入stdin(默认):文件描述0
    • 标准输出stdout(默认):文件描述1
    • 标准错误stderr:文件描述2
      如果希望stderr重定向到file,如下:
    command 2>file
    

    /dev/null

    command > /dev/null
    command > /dev/null 2>&1
    

    起到禁止输出的效果(屏蔽stdout和stderr),2与>之间不能有空格,2>才表述错误输出


    2020-01-02补充

    shell文件包含

    shell可以包含外部文件,这样可以封装一些公用的代码作为独立文件,语法如下:

    . filename  #注意(.)后面必须要有空格
    或者
    source filename
    

    示例:
    创建两个shell脚本文件,赋予执行文件执行权限,被调用文件不需要

    图 7 图 8

    相关文章

      网友评论

          本文标题:坚持打卡学习第十七天——shell脚本编写五

          本文链接:https://www.haomeiwen.com/subject/kjuoqrtx.html