• shell-常见命令与拓展


    命令

    : 命令,空命令,返回值为 1,相当于true的别名 while : 相当于 while true

    . 命令,用于在当前shell中执行命令 通常,一个脚本执行一条外部命令或脚本程序时,会创建一个新的环境(一个子shell),(.)命令可以使脚本保持当前脚本执行,常用于设置当前脚本的环境变量

    echo 命令,默认输出带换行的字符串,若不需要换行,使用echo -n 但不是所有的shell都支持

    不换行的场合,建议用printf

    eval 命令,在变量名前加 eval, 输出的是变量所存储的值

    exit 命令,0表示执行成功 1-125可以被程序自定义使用, 126 文件不可执行 127 命令未找到 128及以上 出现一个信号

    export 命令, 将作为它参数的变量导出到子shell中,并使之在子shell中有效。export将自己的参数创建为一个环境变量,而这个环境变量可以被当前脚本调用的其他脚本和程序看见

    set -a 或 set -o all 命令将导出它之后声明的所有环境变量

    expr 命令,将它的参数当做一个表达式来求值

    printf 命令 语法 printf "format string" parameter1 parameter2 …

    但格式化字符串不支持浮点数的输出,格式化字符串中除了%和之外,所有的字符都按照原样输出

    return 函数返回值,无return时,默认返回最后一条命令的退出码

    set 命令,为shell设置参数变量,可以结合 $(…)进行参数分割 参数为字符串(不同参数间按照空格区分),通过

    set $(…)

    echo $2 可以取得第二个参数

    set -x 让一个脚本程序跟踪显示它当前执行的命令

    shift(参数前移) trap(响应按键中断) unset(从环境中删除变量或函数)

    find 命令,搜索文件

    find [path] [option] [tests] [actions]

    grep 命令,在文件中搜索字符串,通用正则表达式解释器

    grep [options] PATTERN [FILES]

    (`…`)或 $(…)命令 捕获命令的执行,如果需要捕获一条命令的执行结果,并它用在shell脚本程序中

    拓展

    1.算数拓展

    完成算数运算,使用$((…)) …表示要求值的表达式

    2.参数拓展

    处理要传入shell或脚本的参数 进行自动化的替代字符串(p60)

    here文档

    向一条命令传递输入的一种特殊方法,允许一条命令在获得输入数据时好像在读取一个文件或键盘

    以<<开头 紧跟一个特殊的字符序列,改序列在文档末尾再次出现

    cat <<!FUNKY!

    hello

    this is a here document

    !FUNKY!

    输出是

    hello

    this is a here document

    shell调试

    跟踪错误的主要方法是设置各种shell选项或使用echo来 显示变量内容

    p63 表格2-21 在调用shell时加上命令行选项或使用set命令

    命令行选项

    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

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

  • 相关阅读:
    watchers
    Observer
    计算属性
    Jsonp
    跨域
    axios
    duilib入门简明教程 -- 部分bug (11) (转)
    duilib入门简明教程 -- 界面设计器 DuiDesigner (10) (转)
    duilib入门简明教程 -- 界面布局(9) (转)
    duilib入门简明教程 -- 完整的自绘标题栏(8) (转)
  • 原文地址:https://www.cnblogs.com/Mrwang-tju/p/12192385.html
Copyright © 2020-2023  润新知