代码改变世界

Shell script 笔记

2008-01-07 15:48  Jeff  阅读(593)  评论(0编辑  收藏  举报
1.使脚本文件具有可执行权限:

  chmod a+x filename.sh

2.shell发现了$,就会执行如下操作:

 1).读取下一个单词来确定变量名

 2).检索变量的值。如果变量没有赋值,则shell自动使用空字符串“”作为其值。

 3). 用变量的值取代$和变量名。

        这个过程被称为“变量置换”

3. 七个特定变量

     $# 传递到脚本的参数个数

     $* 以一个单字符串显示所有向脚本传递的参数

     $$ 脚本运行的当前进程ID

     $! 后台运行的最后一个进程的进程ID

     $@ 类似于$#,但是使用时加引号,并在引号中返回参数.

     $- 显示shell当前使用的当前选项,与set命令功能相同

     $? 表示命令最后退出的状态,0表示没有错误,其他的任何值都表示有错误.

4. 有值置换

     当一个变量已经被赋值时,置换一个值。语法为:$ {variable:+value}

     variable被赋值时,value被置换给它,否则,什么置换也不会发生,返回一个空字符

5. 命令置换

    命令置换是一种机制,能使你获得命令的输出结果。在此机制下,shell执行命令集合,然后将命令的输出结果置换,可以使用``进行命令置换,形式如:

     $ `command`

     其中的command可以是一个简单命令、一个管道、或者一个命令列表。

     注意:这里使用的是倒引号不是单引号!

     E.g.:   USER=`whoami`

6. 比较:

    Int1 –eq int2    int1等于int2时返回真

    -z str                str长度为0时返回真

 7. 使用$0

     $0表示被执行的命令的名字,对shell脚本来说,就是调用它的路径。

 用法一:获得调用脚本的命令名字

 用法二:用于脚本的使用声明

 8.其他位置变量

     $1$2、……依次表示脚本的第一、第二、…

…个参数,使用case等语句即可以进行选项和

参数的处理。