美文网首页
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内

2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内

作者: 豆豆的栗子粥 | 来源:发表于2016-09-25 19:58 被阅读0次

    一、bash特性:

    1、命令别名

    获取当前用户可用的别名的定义

    2、命令历史

    shell进程会保存其会话中用户曾经执行过的命令;命令通过其“历史文件”来持久保存此前执行过的命令;每个用户都有其自己专用的历史文件;

    HISTSIZE:shell进程的缓冲区保留的历史命令的条数;

    HISTFILESIZE:命令历史文件可保存的历史命令的条数;

    history -c:清空命令历史;

    history  -d  OFFSET:删除指定的条目;

    3、快捷键

    Ctrl+a:跳至命令行首;

    Ctrl+e:跳至命令行尾;

    Ctrl+k:删除光标所在处至尾部的内容;

    Ctrl+u:删除行首至光标所在处的内容;

    4、命令补全和路径补全

    命令补全:

    shell程序在接收到用户执行命令的请求且分析完成之后,最左侧字符串将被当作命令去查找;

    查找机制:

    (1) 查找内部命令;

    (2) 查找外部命令:

    1、去$PATH变量所指定的各路径下,自左而右逐个搜索各目录下的文件名;

    2、给定的打头的字符串如果能惟一标识某命令程序文件的文件名,则直接补全;

    3、不能惟一标识,再击tab可给列表;

    4、错误:没有任何命令可被此打头字符串标识;

    路径补全:

    在给定的起始路径的上级目录下,以对应路径下的打头字符串来逐一匹配上级目标下的每个文件:

    惟一标识:tab补全;

    不能惟一标识:tab, tab给出列表;

    错误路径:没有响应;

    5、命令行展开

    把命令行的给定的特殊符号自动替换为相应字符串的机制;

    ~: 自动替换为用户家目录;

    ~USERNAME:自动替换为指定用户的家目录;

    {}:可承载一个以逗号分隔的路径列表,能够将其展开为多个独立路径;

    6、命令的执行状态结果

    命令的正常输出结果:命令的返回值;

    通过引用来保存下来或直接调用——”命令引用“

    7、变量

    程序:指令+数据

    数据:文件、变量;

    变量:内存空间,有名称,名称即为变量名,对应的内存空间中的数据即为变量的值;

    变量赋值:左边=右边(把右边存储到左边指向的内存空间)

    二、命令执行状态返回值

    用 $? 取出最后一个带返回值的函数调用.

    如果你确定某个命令或函数有返回值,就可以在调用这条命令后用 $? 取出返回值并处理.在bash中习惯用返回值0代表一切正常.

    比如最常用的 ls 命令,有三个返回值: (翻译自man手册)

    0 : 一切正常

    1: 小问题 (比如无法访问某个子目录)

    2: 大麻烦 (比如找不到命令所需参数)

    在终端执行了 ls 命令后,就可以用 echo $? 来查看返回值.

    注意 $? 取出的是最后一个返回值,意思是如果某个命令没有返回值,那么 $? 会返回最后一个有返回值的命令的返回值.

    三、命令行展开所涉及的内容及其示例演示

    【root@dd ~】# mkdir /etc/fr/{1,2,3}

    【root@dd ~】# tree /etc/fr

    /etc/fr

    ├── 1

    ├── 2

    ├── 3

    相关文章

      网友评论

          本文标题:2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内

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