bash手册(更新中)

shell是什么?

shell本身是一个命令解释器,介于操作系统的内核(kernel)态和用户态之间,可以执行系统调用及系统命令等,让用户以此来与操作系统实现互动。同时,它也用来指一种计算机程序语言(类似于C、Python等)。一个shell程序一般被称为一个脚本。

shell主要流派

目前,shell主要有两大流派:

  1. sh
  • burne shell (sh)
  • burne again shell (bash)
  1. csh:
  • c shell (csh)
  • tc shell (tcsh)
  • korn shell (ksh)

目前,大部分Linux系统预设的shell都是bash。

变量声明

  • 不像C、Java等静态语言需要先声明然后才能使用,与Python等动态语言类似,Bash变量在使用时直接定义
  • =作为赋值语句时两边不能有空格!,作为字符串比较符号时两边必须都有空格
  • 声明或重新赋值绝不能使用$
    $VAR="abc"
    这种用法是错误的,因为$还有个作用就是执行命令
VAR=abc
VAR="abc" 

变量引用

  • 引用变量必须使用$符号
  • 以下方法等效,不能使用{$VAR}这种方法,会有花括号包裹变量的歧义
echo "THE VAR is"    $VAR; # 多个空格时,认为是一个空格
echo "THE VAR is" ${VAR};
echo "THE VAR is ${VAR}";

单引号与双引号

'':单引号里的任何字符都会原样输出,单引号中对变量引用是无效的,且单引号中不能出现单引号(对单引号使用转义符也不行);
"":双引号里可以引用变量,可以出现转义字符。

流程控制

bash中对与真假的判断

返回值是0为真,返回值非0为假

if test abc = abc; then echo $?": true"; else echo $?": false"; fi # 输出
0: true 
if test abc == bc; then echo $?": true"; else echo $?": false"; fi # 输出
1: false 
if test abc === bc; then echo $?": true"; else echo $?": false"; fi # 输出下面两行
bash: test: ===: binary operator expected
2: false 

你可能感兴趣的:(bash手册(更新中))