文档章节

bash shell的内建命令

w
 wang__tao
发布于 2016/11/15 00:06
字数 510
阅读 11
收藏 0

内建命令是在当前bash下执行的,会对当前环境和subshell产生影响,而不是内建命令,bash会fork一个subshell来执行,为什么要内建命令,因为bash的subshell不会对父shell产生影响,这样造成的结果是如cd命令,如果执行cd命令是在bash的subshell中执行,那么,并不会改变父shell的目录,这就不能完成切换目录的目的了。

你也可以使用enable命令打开或者关闭内建命令,内建命令总共有50多个,比较常用的有source . read mapfile和readarray(一个命令的两种写法,功能是将一个文本直接变成一个数组,每行作为数组的一个元素) echo printf jobs sleep fg bg disown(使一个jobs作业控制进程脱离jobs的控制,成为一个“野”进程) trap suspend exit exec logout wait

命令行参数的处理getopts,实现如-a、-b、-c n的功能,e:表示这个参数后面是有变量值的,后面的变量用$OPTARG获取。

#!/bin/bash

while getopts "abc:de:f" arg
do
  case $arg in
    a)
    echo "aaaaaaaaaaaaaaaaaaaaaa"
    ;;
    b)
    echo "bbbbbbbbbbbb"
    ;;
    c)
    echo "c:arg:$OPTARG"
    ;;
    d)
    echo "ddddddddddddddd"
    ;;
    e)
    echo "e:arg:$OPTARG"
    ;;
    f)
    echo "fffffffffffffffffffffff"
    ;;
    ?)
    echo "$arg:no this arguments!!!"
 esac
done

还有如alias、unalias、cd、declare、typeset、dirs、enable、export、hash、history、popd、pushd、local、pwd、set、unset、shopt、ulimit、umask、eval、trap(信号命令)

set是用来调试脚本的时候设置参数用的

  • -v 表示可视模式,效果就是在执行bash的时候会把将要执行的内容也打印出来
  • -x (Xtrace)跟踪模式,跟踪各种语法的调用,并打印出输出的结果
  • -n 用来检查bash的语法错误,并不会真正执行bash脚本。
    这三个参数既可以放在shebang后面,也可以放在程序中你需要的地方。

查看一个命令是不是内建命令,使用type command,可以直接看到返回的结果

type trap
trap 是 shell 内建

type find
ind 是 /usr/bin/find

© 著作权归作者所有

共有 人打赏支持
w
粉丝 1
博文 94
码字总数 33700
作品 0
西安
私信 提问
linux随手笔记

随手笔记NO.1 一般的计算机接口 GUI(graphic User Interface) gnomeKDEXFACEWindows的图形界面叫X-Window(x是图形显示协议而且是c~s架构) CLI(Command Line Interface) 计算机的构成 ...

飞天喜欢yu
2018/01/05
0
0
Shell脚本调试方法 Shell脚本执行的过程

Shell脚本调试方法 Shell脚本执行的过程 分类:-[小西南]- (8434) (0) 1Shell脚本调试方法 Shell提供了一些用于调试脚本的选项: -n,读一遍脚本中的命令但不执行,用于检查脚本中的语法...

Mr_Tea
2016/09/09
12
0
理解shell(第五章)

1. shell的类型 [root@localhost ~]# ls -l /bin/*sh -rwxr-xr-x. 1 root root 938832 Jul 18 2013 /bin/bash lrwxrwxrwx. 1 root root 4 Oct 27 2014 /bin/csh -> tcsh -rwxr-xr-x. 1 root ......

wlwlwl890
2017/06/23
0
0
【Linux学习】之 Shell初识

Shell 的 历史: - 1977年 Bourne Shell发布,并作为UNIX 7的默认Shell。 - 由于BourneShell 一直没有正式的版本号且交互性不好, 加州大学伯克利分校的一名学生编写了 C Shell,由于不支持正...

fanfan4569
2017/11/16
0
0
Source 与 . 命令

执行 bash 命令 与 shell 脚本  我们都知道当运行普通命令(非内建命令)或者Shell脚本的时候,当前终端命令行 Bash ,都会fork 一个子进程 去 分析参数后execve 普通命令 或者 执行脚本的时...

sdoyuxuan
2018/01/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

vue 对对象的属性进行修改时,不能渲染页面 vue.$set()

我在vue里的方法里给一个对象添加某个属性时,我console.log出来的是已经更改的object ,但是页面始终没有变化 原因如下: **受现代 JavaScript 的限制 (而且 Object.observe 也已经被废弃),...

Js_Mei
40分钟前
0
0
开始看《Java学习笔记》

虽然书买了很久,但一直没看。这其中也写过一些Java程序,但都是基于IDE的帮助和对C#的理解来写的,感觉不踏实。 林信良的书写得蛮好的,能够帮助打好基础,看得出作者是比较用心的。 第1章概...

max佩恩
昨天
12
0
Redux 三大原则

1.单一数据源 在传统的MVC架构中,我们可以根据需要创建无数个Model,而Model之间可以互相监听、触发事件甚至循环或嵌套触发事件,这些在Redux中都是不被允许的。 因为在Redux的思想里,一个...

wenxingjun
昨天
8
0
跟我学Spring Cloud(Finchley版)-12-微服务容错三板斧

至此,我们已实现服务发现、负载均衡,同时,使用Feign也实现了良好的远程调用——我们的代码是可读、可维护的。理论上,我们现在已经能构建一个不错的分布式应用了,但微服务之间是通过网络...

周立_ITMuch
昨天
4
0
XML

学习目标  能够说出XML的作用  能够编写XML文档声明  能够编写符合语法的XML  能够通过DTD约束编写XML文档  能够通过Schema约束编写XML文档  能够通过Dom4j解析XML文档 第1章 xm...

stars永恒
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部