• 1.摘要
  • 2.概念介绍
  • 3.参数说明
  • 3.1.-c字符串
  • 3.2.-i
  • 3.3.-s
  • 3.4.-
  • 3.5.-norc
  • 3.6.-noprofile
  • 3.7.--refile文件名
  • 3.8.-version
  • 3.9.-quiet
  • 3.10.-login
  • 3.11.-nobraceexpansion
  • 3.12.-nolineediting
  • 3.13.-posix
  • 4.外界评价
  • 4.1.Linux之父Linus对BASH的描述
  • 4.2.BASH的正确缩写
  • 4.3.BASH的作者和产生
  • 4.4.双关语的经典之处
  • 5.参考资料

bash

bash 是一个为GNU计划编写的Unix shell。它的名字是一系列缩写:Bourne-Again SHell — 这是关于Bourne shell(sh)的一个双关语(Bourne again / born again)。Bourne shell是一个早期的重要shell,由史蒂夫·伯恩在1978年前后编写,并同Version 7 Unix一起发布。bash则在1987年由布莱恩·福克斯创造。在1990年,Chet Ramey成为了主要的维护者。

概念介绍

Bash(GNUBourne-AgainShell)是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上用的Shell,像tcsh、csh、ash、bsh、ksh等等,ShellScript大致都类同,当您学会一种Shell以后,其它的Shell会很快就上手,大多数的时候,一个ShellScript通常可以在很多种Shell上使用。

bash是大多数Linux系统以及MacOSXv10.4默认的shell,它能运行于大多数Unix风格的操作系统之上,甚至被移植到了MicrosoftWindows上的Cygwin系统中,以实现windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。

bash的命令语法是Bourneshell命令语法的超集。数量庞大的Bourneshell脚本大多不经修改即可以在bash中执行,只有那些引用了Bourne特殊变量或使用了Bourne的内置命令的脚本才需要修改。bash的命令语法很多来自Kornshell(ksh)和Cshell(csh),例如命令行编辑,命令历史,目录栈,$RANDOM和$PPID变量,以及POSIX的命令置换语法:$(...)。作为一个交互式的shell,按下TAB键即可自动补全已部分输入的程序名,文件名,变量名等等。1

参数说明

-c字符串

若用-c参数,则bash从字符串中读入命令,如果字符串后还有变量就被设定为从$0开始的位置参数。

-i

若用-i参数,则bash是交互的。

-s

若用-s参数,则bash从标准输入中读入命令(在执行完-c带的命令之后。)直到输入exit。

-

单一的-符号表明参数执行完毕,并且屏蔽此后所跟参数,后面的所有变量都被看作是文件名。

-norc

如果bash是交互的,则不执行个人初始化文件:-/.bashrc,如果bash作为sh来运行,这个参数缺省是关闭的。

-noprofile

不执行系统范围的启动文件/etc/profile也不执行个人的启动文件-/.bash_profile,-/.bash_login或-/.profile,缺省情况下,bash作为登录的shell时以这些文件作为启动文件。

--refile文件名

如果bash是交互的,则以此文件作为bash的启动文件。替代-/.bashrc。