`
energykey
  • 浏览: 593071 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Linux shell语法小结

阅读更多

1、  set命令

当没有参数的时候,列出系统中所有的自定义变量值;当有参数的时候,重置基本参数如$1$2等。如set `date` date命令的输出当作输入参数;

 

2let命令

      执行算术运算。功能如i=j+1,shell语法为:

      let “i=$j+1”,等同于 ‘expr’。 后者只能作用于整数,如 i=`expr $i+1`; 如果使用非整数,退出状态不为0

 

3、expr   

      expr也有模式匹配功能。

   可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次。
        $value=accounts.doc
        $expr $value : '.*'
   输出:12
   在expr中可以使用字符串匹配操作,这里使用模式. d o c抽取文件附属名。
       $expr $value : '\(.*\).doc' 
在圆括号前加转义符号是表示圆括号是用于提取功能的。
   输出:accounts

 

4、shift命令

       将参数表向左移动一个位置,$2变成$1,...,依次类推。

 

5、shell中可以嵌套命令,使用\`来保护内层命令,如`cd \`pwd\``。

 

6、设置IFS为换行符:IFS=’

(还真得换行)

 

7、两个特殊操作

     命令1 && 命令:只有在命令1执行成功时才执行命令2

     命令1 || 命令:命令1失败才执行命令2

 

8、变量赋值

     “”引用的字符串需要shell解析其中的``$\等特殊字符,而’’引用的字符串则被看作完全的

   字符串,echo ‘`pwd`’将输出`pwd`;而echo “`pwd`”将输出当前目录

  

变量

含义

$var

Var的值,若无定义则无值

${var}

同上,用于同$varx等类型变量区分

${var-thing}

Var有定义时,取值$var;无定义时取值thing,而$var不变

${var=thing}

Var有定义时,取值$var;无定义时取值thing$var值设为thing

${var?message}

有定义时取值$var;否则打印message并退出shell,若message为空串,打印var:parameter not set

${var+thing}

有定义时取值thing;否则无值

 

9、shell内部变量

     

变量

含义

$#

参数个数

$*

所有参数

$@

同上,稍有区别

$-

Shell的选择项

$?

上次执行命令返回值

$$

Shell的进程标识符

$!

&启动的最后一个命令的进程标识符

$HOME

cd命令的缺省参数

$IFS

参数分割词的字符表

$MAIL

信件文件,当其改变时给出信息you have mail

$PATH

搜索命令的目录表

$PS1

提示符串,缺省为$

$PS2

后继命令行提示符,缺省为>

有关$*$@得归纳:

 $*$@扩展为参数,并被重复扫描;参数得空格将字符串分成多个参数;

 “$*”表示shell文件的所有参数及其空格连在一起作为单个词处理;

$@”与shell文件接收的参数等价,参数中的空格被忽略,其结果是等同于原来参数一个单词列表。

 

10、 shell模式匹配规则

*      匹配任意字符串,包括空字符串

?      匹配任意单字符串

[ABC]  匹配ABC中任意字符

“…”   完全与匹配,引号保护特殊字符,也可以写成’…’

\C     匹配C

 

11、 case语句

case word in

  模式1)  命令;;

  模式2)  命令;;

  

  *)       命令[;;]

esac

只能匹配一个模式

 

12、 if 语句

if 命令

then

else

fi

其中换行很重要,thenelsefi仅在换行或分号之后被识别,else部分可选。可以利用case语句替代if和test测试语句,对于test命令不是内部命令的情况下,case语句执行的要快;

 

13、循环

1)for i [in 文件(参数)列表]

do

  循环体

done

        如果i后面没有in部分,则隐含地表示对shell文件的全部参数,即$*

 

      2) While 命令

            do

                  循环体,只要命令返回状态为真便继续进行

  done

 

3)until 命令

do

   循环体,只要命令返回状态为假便继续执行

Done

 

例如:

While sleep 60

do

Done

每隔60秒执行一次循环中的操作;

 

   另外where处的控制命令可以是truefalse、或者是:,冒号命令是一个shell内部命令,仅仅计

   算参数值,然后返回“真”,但是它不需要调用系统中的命令,所以效率比true命令高

 

  4)break命令:退出循环,取自C语言。

 

14、点号命令:

   将文件作为标准输入,从中读入一行一行的命令在当前shell中执行,不要求文件具有可执行权限

 

15、 文件命令习惯,后面加上当前进程号码$$为好

 

16、标准输入命令read

$read greeting

Hello,world

           $echo $greeting

                 Hello,world

 

17、here document 输入

         <<s   从本地输入,直至出现字符串s为止,但是要解析输入中的特殊字符,``$\

    <<’s’ 同上,不进行替换。

    <<\s 同上。

 

本文转自:

http://blogold.chinaunix.net/u1/34739/showart_283263.html

 

其它相关资料:

Linux Shell编程入门

http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html

 

 

Linux Shell语法速查表(用C语言语法来作对比)

http://blog.csdn.net/kwiner/archive/2009/04/05/4049640.aspx

 

0
0
分享到:
评论
1 楼 hu_hu1221 2012-02-15  
IFS换行这个真变态,我用\n试了不成还以为是其他哪儿写错了呢!

相关推荐

    Linux shell 编程

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

    Linux shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    LINUX与UNIX SHELL编程指南

    第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三章 调试...

    Linux与unix shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell ...

    绝版经典 LINUX与UNIX SHELL编程指南 PDF 高清版 [16.3M]

    第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三...

    LINUX与UNIX SHELL编程指南 高清PDF

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

    Linux与UNIX Shell编程指南.rar

    第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三章 调试...

    linux与unix shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    跟老男孩学Linux运维:Shell编程实战

    / 1819.5 case条件语句的Linux系统脚本范例 / 1879.6 本章小结 / 191第10章 while循环和until循环的应用实践 / 19210.1 当型和直到型循环语法 / 19210.2 当型和直到型循环的基本范例 / 194第11章 for和select...

    LINUX与UNIX_Shell编程指南.rar

    本书共分五部分,详细介绍了shell编程技巧,各种linux命令及语法,还涉及了linux下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 第一部分 shell 第1章 文件安全...

    Linux与UNIX Shell编程指南.

    第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三章 调试...

    linux与unix shell编程指南part2

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考 目 录 译者序 前言 第一部分 shell 第...

    Linux程序设计中文第4版.part2

     1.4 小结 第2章 shell程序设计  2.1 为什么使用shell编程  2.2 一点哲学  2.3 什么是shell  2.4 管道和重定向  2.4.1 重定向输出  2.4.2 重定向输入  2.4.3 管道  2.5 作为程序设计...

Global site tag (gtag.js) - Google Analytics