Bash shell编程

1.在比较操作上,整数变量和字符串变量各不相同,详见下表

 

对应的操作
整数操作
字符串操作
相同
-eq
=
不同
-ne
!=
大于
-gt
>
小于
-lt
<
大于或等于
-ge

小于或等于
-le

为空

-z
不为空

-n


2. BASH 中用于判断文件属性的操作符

运算符
含义( 满足下面要求时返回 TRUE )
-e file
文件 file 已经存在
-f file
文件 file 是普通文件
-s file
文件 file 大小不为零
-d file
文件 file 是一个目录
-r file
文件 file 对当前用户可以读取
-w file
文件 file 对当前用户可以写入
-x file
文件 file 对当前用户可以执行
-g file
文件 file 的 GID 标志被设置
-u file
文件 file 的 UID 标志被设置
-O file
文件 file 是属于当前用户的
-G file
文件 file 的组 ID 和当前用户相同
file1 -nt file2
文件 file1 比 file2 更新
file1 -ot file2
文件 file1 比 file2 更老

 


  注意:上表中的 file 及 file1、file2 都是指某个文件或目录的路径

 

3.局部变量

    local aa = 'bbc'

 

4.BASH 中的变量与 C 语言中变量的区别

 

  1,BASH 中的变量在引用时都需要在变量前加上 "$" 符号( 第一次赋值及在For循环的头部不用加 "$"符号 );
  2,BASH 中没有浮点运算,因此也就没有浮点类型的变量可用;
  3,BASH 中的整形变量的比较符号与 C 语言中完全不同,而且整形变量的算术运算也需要经过 let 或 expr 语句来处理;

 

5.IF语句

if [ expression ]
then
statments
fi

 

或者

 

if [ expression ]
then
statments
else
statments
fi

 

或者

 

if [ expression ]
then
statments
else if [ expression ]
then
statments
else
statments
fi

 

或者

 

if [ expression ]
then
statments
elif [ expression ]
then
statments
else
statments
fi

 

6.for语句

  for var in
  do
  statments
  done


如果写成 for day 而没有后面的 in 部分,则 day 将取遍命令行的所有参数。

 

7.while语句

 

  while [ condition ]
  do
  statments
  done

 

8.Until语句  until [ condition is TRUE ]
  do
  statments
  done

 

9.CASE语句  case "$var" in
    condition1 )
      statments1;;
    condition2 )
      statments2;;
    ...
    * )
      default statments;;
    esac

 

 

10.  保留变量

 

BASH 中有一些保留变量,下面列出了一些:

$IFS    这个变量中保存了用于分割输入参数的分割字符,默认识空格。
$HOME  这个变量中存储了当前用户的根目录路径。
$PATH   这个变量中存储了当前 Shell 的默认路径字符串。
$PS1   表示第一个系统提示符。
$PS2   表示的二个系统提示符。
$PWD  表示当前工作路径。
$EDITOR 表示系统的默认编辑器名称。
$BASH  表示当前 Shell 的路径字符串。
$0, $1, $2, ...  表示系统传给脚本程序或脚本程序传给函数的第0个、第一个、第二个等参数。
$#   表示脚本程序的命令参数个数或函数的参数个数。
$$   表示该脚本程序的进程号,常用于生成文件名唯一的临时文件。
$?   表示脚本程序或函数的返回状态值,正常为 0,否则为非零的错误号。
$*   表示所有的脚本参数或函数参数。
$@    和 $* 涵义相似,但是比 $* 更安全。
$!    表示最近一个在后台运行的进程的进程号。

 

11.随机数

     echo $RANDOM

 

12.运算符

 

算术运算符
+ - * / % 表示加减乘除和取余运算
+= -= *= /= 同 C 语言中的含义

 

位操作符
<< <<= >> >>= 表示位左右移一位操作
& &= | |= 表示按位与、位或操作
~ ! 表示非操作
^ ^= 表示异或操作

 

关系运算符
< > <= >= == != 表示大于、小于、大于等于、小于等于、等于、不等于操作
&& || 逻辑与、逻辑或操作

 

13.读取输入

read name

 

14.  BASH 中对返回值的处理

无论是在 Shell 中对 BASH 脚本返回值的处理,还是在脚本中对函数返回值的处理,都是通过 "$?" 系统变量来获得。BASH 要求返回值必须为一个整数,不能用 return 语句返回字符串变量。


15. 用 BASH 设计简单用户界面

BASH 中提供了一个小的语句格式,可以让程序快速的设计出一个字符界面的用户交互选择的菜单,该功能就是由 select 语句来实现的,select 语句的语法为:

select var in

 

 

16.Bash调试

bash -x bash-script 命令,可以查看一个出错的 BASH 脚本到底错在什么地方,可以帮助程序员找出脚本中的错误。

 

另外用 trap 语句可以在 BASH 脚本出错退出时打印出一些变量的值,以供程序员检查。trap 语句必须作为继 "#!/bin/bash" 后的第一句非注释代码,一般 trap 命令被写作: trap 'message $checkvar1 $checkvar2' EXIT

在比较操作上,整数变量和字符串变量各不相同,详见下表:

对应的操作
整数操作
字符串操作
相同
-eq
=
不同
-ne
!=
大于
-gt
>
小于
-lt
<
大于或等于
-ge

小于或等于
-le

为空

-z
不为空

-n


posted on 2014-07-17 22:31  pushStack  阅读(156)  评论(0编辑  收藏  举报