6 Bash 特性

这部分描写叙述Bash独有的特性。

*  调用Bash : Bash能够接受的命令行选项。

*  Bash启动文件 : Bash何时及怎样运行脚本。

*  交互Shell : 什么是交互式shell。

*  Bash条件表达式 : 内建命令test用到的表达式元素。

*  shell算术 : shell变量的算术。

*  别名 : 给命令还有一个名字。

*  数组 : 数组变量。

*  文件夹堆栈 : 訪问过的文件夹历史。

*  打印提示符 : 控制PS1字符串。

*  限制shell : 对shell运行的很多其它控制模式。

*  Bash POSIX 模式 : 使得Bash的行为更接近POSIX标准。

6.1 调用Bash

bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o option] [-O shopt_option] [argument …]

bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o option] [-O shopt_option] -c string [argument …]

bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o option] [-O shopt_option] [argument …]

全部能够用于内建命令set(见 Set内建命令 章节)的单个字符的选项。都能够在调用shell时。作为选项使用。

此外。还有几个多个字符的选项能够使用。为了能够被识别出来,这些选项必须位于命令行的单个字符选项之前。

--debugger

在shell启动前,为调试器指定配置文件。打开扩展调试模式(见 shopt内建命令 章节,中关于shopt内建命令的 extdebug 选项的描写叙述>)。

--dump-po-strings

一个列表,由 ‘$’ 引导的全部双引號包含的字符串,以 GNU gettext PO (便携对象)文件格式打印在标准输出。除了输出格式外。等价于 -D。

--dump-strings

等价于 -D。

--help

在标准输出上显示使用信息。并成功退出。

--init-file filename

--rcfile filename

在交互shell中,从 filename 中运行命令。

(而不是 ~/.bashrc)

--login

等价于 -l 。

--noediting

在交互shell中。不使用GNU Readline 库(见 命令行编辑 章节)从命令行读取。

--noprofile

当Bash以登录shell方式调用时,不加载系统级启动文件 /etc/profile 。或者全部个人初始化文件 ~/.bash_profile, ~/.bash_login, 或者 ~/.profile。

--norc

在交互式shell中不读取初始化文件 ~/.bashrc 。假设使用 sh 调用shell时。默认启用此选项。

--posix

改变Bash中与POSIX标准不同的默认行为,以符合POSIX标准。此选项使得Bash的行为成为POSIX标准的严格超集。见 Bash POSIX 模式 章节,关于Bash POSIX 模式的描写叙述。

--restricted

使得shell成为限制shell(见 限制shell)。

--verbose

等价于 -v 。按原样打印shell的输入行。

--version

在标准输出上显示当前Bash的实例的版本号信息,并成功退出。

还有几个单字符的选项,在调用shell时可用。可是内建命令set中不可用。

-c string

处理选项后,从string中读取和运行命令,然后退出。

全部兴许的參数都赋值给位置參数,从$0開始。

-i

强制shell以交互方式执行。交互方式的shell,请參见 交互shell章节。

-l

使得当前的shell的行为。就像直接由登录调用的。当shell是交互模式时。等价于使用‘exec -l bash’启动登录shell。

当shell不是交互式的时候,则运行登录shell启动文件。 ‘exec bash -l’ 或者 ‘exec bash --login’ ,会以Bash登录shell代替当前的shell。參见 Bash启动文件 章节,关于登录shell的特殊行为的描写叙述。

-r

使得shell成为限制shell。(见 限制shell)

-s

假设出现此选项。或者选项处理后。没有參数了。则从标准输入读取命令。

当调用交互式shell时。此选项同意设置位置參数。

-D

一个列表,由 ‘$’ 引导的全部双引號包含的字符串,被打印在标准输出上。在当前的locale不是C或者POSIX(见 Locale翻译)的时候,这些字符串是对应语言的翻译。

这个选项隐含了 -n 选项,即不运行命令。

[-+]O [shopt_option]

shopt_option 是一个内建命令 shopt 接受的shell选项(见 shopt内建命令)。

假设出现了shopt_option。-O 设置那个选项,而 +O 取消设置。

假设没有给定 shopt_option,则在标准输出上打印能被shopt接受的shell选项的名字和值。假设调用选项是 +O,则输出的格式是能够重用为输入的。

--

--符号标识了选项的结束,及取消进一步的选项处理。

全部位于--之后的參数,都被视为文件名称和參数。

登录shell是參数0的第一个字符是 ‘-’ 。或者使用 --login选项调用的shell。

交互式shell是启动參数中没有选项參数。除非指定了 -s 參数,没有指定 -c 选项,它的输入和输出都指向终端(由isatty(3)确定),或者带 -i 选项启动。很多其它信息,请參见 交互式shell 章节。

假设选项处理部分后面还有參数。而且没有 -c 或者 -s 选项,则第一个參数被当作是包括shell命令的文件名称(见 shell脚本)。

当Bash以此种方式调用时。$0 被设定为文件名称,位置參数都设置为兴许的參数。Bash从此文件里读取和运行命令,然后退出。

Bash的退出状态,是脚本中最后一个被运行的命令的退出状态。

假设没有命令运行,则退出状态为0。

bash參考手冊之六(Bash特性)的更多相关文章

  1. bash參考手冊之五(shell变量)续三

    LINENO 当前在运行的脚本或者shell函数的行号. LINES 命令select用来确定打印选择列表的列宽.收到SIGWINCH后,自己主动设置. MACHTYPE 是一个字符串,描写叙述了正在 ...

  2. ANTLR4权威參考手冊(一)

    写在前面的话: 此文档是对伟大的Terence Parr的著作<the definitive antlr4 reference>的翻译本.致敬!欢迎转载,请注明原地址,请尊重劳动成果.翻译 ...

  3. Hadoop 2.6.0分布式部署參考手冊

    Hadoop 2.6.0分布式部署參考手冊 关于本參考手冊的word文档.能够到例如以下地址下载:http://download.csdn.net/detail/u012875880/8291493 ...

  4. 6. GC 调优(工具篇) - GC參考手冊

    进行GC性能调优时, 须要明白了解, 当前的GC行为对系统和用户有多大的影响. 有多种监控GC的工具和方法, 本章将逐一介绍经常使用的工具. 您应该已经阅读了前面的章节: 垃圾收集简单介绍 - GC參 ...

  5. 刚開始学习的人非常有用之chm结尾的參考手冊打开后无法正常显示

    从网上下载了struts2的參考手冊.chm(本文适用全部已.chm结尾的文件)不能正常打开使用. 如图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/ ...

  6. HTML5 界面元素 Canvas 參考手冊

    HTML5 界面元素 Canvas 參考手冊 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协 ...

  7. MySQL中文參考手冊

    非常好的中文手冊: 链接:http://www.sdau.edu.cn/support/mysq_doc/manual_toc.html

  8. 早来的圣诞礼物!--android 逆向菜鸟速參手冊完蛋版

    我的说明: 让老皮特整理了这么长时间这个手冊,心里挺过意不去的,回头我去深圳带着他女儿去游乐场玩玩得了,辛苦了.peter! 太多的话语,也描写叙述不出这样的感觉了,得找个时间.不醉不归... 注:下 ...

  9. Nginx中文手冊

    下载 : Nginx 中文手冊 Nginx 常见应用技术指南[Nginx Tips] 第二版 作者:NetSeek http://www.linuxtone.org (IT运维专家网|集群架构|性能调 ...

随机推荐

  1. 【洛谷】2607: [ZJOI2008]骑士【树形DP】【基环树】

    P2607 [ZJOI2008]骑士 题目描述 Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬. 最近发生了一件可怕的事情,邪恶的Y国发动了一 ...

  2. BZOJ 2142 礼物 组合数学 CRT 中国剩余定理

    2142: 礼物 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 1450  Solved: 593[Submit][Status][Discuss] ...

  3. tyvj:1520 树的直径 spfa/树的直径

    tyvj:1520 树的直径 Time Limit: 1 Sec  Memory Limit: 131072KiBSubmit: 9619  Solved: 3287 题目连接 http://www. ...

  4. Qt 编译boost

    Qt为4.6.2.Boost为1.63.0. 1.安装qt-sdk-win-opensource-2010.02.1.exe. 2.下载boost_1_63_0并解压,如:解压到E盘根目录下. 3.在 ...

  5. Mysql show indexes 查看索引状态

     查看表中有哪些已建立的索引 SHOW INDEX FROM tbl_name [FROM db_name] SHOW INDEX会返回以下字段: | Table | Non_unique | Key ...

  6. 实现多线程的另一种方式-Callable

    package com.mldn.thread; import java.util.concurrent.ExecutionException; import java.util.concurrent ...

  7. linux下安装MYSQL详细配置(转)

      #tar zxvf mysql-5.0.18.tar.gz#cd  mysql-5.0.18 #./configure --prefix=/usr/local/mysql --with-chars ...

  8. shell中的括号(小括号,中括号,大括号)及单引号、 双引号,反引号(``)

    一.小括号,园括号() 1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号, ...

  9. oracle之表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)

    数据文件和日志文件是数据库中最关键的文件.它们是数据存储的地方.每一个数据库至少有一个与之相关的数据文件,通常情况下不仅仅一个,有非常多.数据在数据文件里是怎样组织的?要了解这些内容我们首先必须理解什 ...

  10. 转: "SMTP 服务器无法识别在 Mac 2011 Outlook 中发送电子邮件时错误。错误 17092"

    在 Mac 2011 Outlook 中发送电子邮件时,您可能会收到下面的错误消息: 无法发送邮件.SMTP 服务器无法识别任何 Outlook 所支持的身份验证方法.请尝试更改帐户设置中的 SMTP ...