文档章节

bash shell的内建命令

w
 wang__tao
发布于 2016/11/15 00:06
字数 510
阅读 11
收藏 0
点赞 0
评论 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
博文 93
码字总数 33311
作品 0
西安
linux随手笔记

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

飞天喜欢yu
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
01/23
0
0
Linux Shell学习(一)

Linux Shell 使用 来查看当前使用的shell 在linux/unix系统中创建一个进程的方式是首先调用fork()系统调用子进程,然后在子进程中调用系统调用execve()执行一个可执行程序 用户在登陆系统中以...

eatnothing
2016/03/29
73
0
shell特殊字符

# 注释,行首以#开头为注释(#!是个例外) ; 命令分割符,可以用来在一行中写多个命令 ;; 终止“case”选项 . 相当于source命令,这是一个bash内建命令 . 作为文件名的一部分,如果作为文...

空空空空的
2014/05/07
0
0
linux shell基础-1

shell history Tab键 alias 通配符 重定向功能 shell history 作用:bash内建命令,管理命令历史 语法: 参数: "!"的用法: 配置文件: 历史命令快捷键 Tab键 作用: 使用方法: 实例: al...

arvinlinux
2017/07/02
0
0
Linux帮助使用方法详解

首先要弄明白一点,个人认为Linux里的帮助不是为了让我们使用它学习新知识,而是帮助我们复苏记忆。 有多种方式的帮助如下: help --help 或者 -h man /usr/share/doc info help bash 内建命...

CrazyWing
2017/11/20
0
0
/bin/true

true命令啥都不做,只设置退出码为0。 在Linux底下,每个程序执行完毕都会返回一个退出码给调用者,一般情况下0表示成功,其他值表明有问题,当然某些程序的退出码有特殊含义。有些shell下t...

jims
2016/09/04
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

pbgo: 基于Protobuf的迷你RPC/REST框架

https://www.oschina.net/p/pbgo

chai2010
10分钟前
0
0
rsync工具介绍、常用选项以及通过ssh同步

linux下的文件同步工具 rsync rsync是非常实用的一个同步工具,可以从a机器到b机器传输一个文件,也可以备份数据,系统默认没有这个工具,要使用命令 yum install -y rsync 安装。 rsync的命...

黄昏残影
26分钟前
0
0
OSChina 周四乱弹 —— 表妹要嫁人 舅妈叮嘱……

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @哈哈哈哈哈嗝:一定要听——The Pancakes的单曲《咁咁咁》 《咁咁咁》- The Pancakes 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :...

小小编辑
今天
34
4
流利阅读笔记30-20180719待学习

重磅:让人类得老年痴呆的竟是它? Lala 2018-07-19 1.今日导读 去年奥斯卡最佳动画长片《寻梦环游记》里有一句经典台词:“比死亡更可怕的,是遗忘”。在电影中,年迈的曾祖母会重复说一样的...

aibinxiao
今天
3
0
1.16 Linux机器相互登录

Linux机器之间以密码方式互相登录 运行命令#ssh [ip address],标准命令:#ssh [username]@ip, 如果没有写用户名,则默认为系统当前登录的用户 命令#w查看系统负载,可查看到连接到该主机的...

小丑鱼00
今天
0
0
about git flow

  昨天元芳做了git分支管理规范的分享,为了拓展大家关于git分支的认知,这里我特意再分享这两个关于git flow的链接,大家可以看一下。 Git 工作流程 Git分支管理策略   git flow本质上是...

qwfys
今天
2
0
Linux系统日志文件

/var/log/messages linux系统总日志 /etc/logrotate.conf 日志切割配置文件 参考https://my.oschina.net/u/2000675/blog/908189 dmesg命令 dmesg’命令显示linux内核的环形缓冲区信息,我们可...

chencheng-linux
今天
1
0
MacOS下给树莓派安装Raspbian系统

下载镜像 前往 树莓派官网 下载镜像。 点击 最新版Raspbian 下载最新版镜像。 下载后请,通过 访达 双击解压,或通过 unzip 命令解压。 检查下载的文件 ls -lh -rw-r--r-- 1 dingdayu s...

dingdayu
今天
1
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
今天
2
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部