`
energykey
  • 浏览: 598128 次
  • 性别: 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...

    shell 编程小结

    ### Shell编程小结 在IT领域,特别是操作系统与脚本编程方面,Shell占据了举足轻重的地位。Shell作为用户与操作系统之间沟通的桥梁,在UNIX和Linux系统中扮演着核心角色。本文将深入探讨Shell编程的基础知识、核心...

    Linux shell编程指南

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

    LINUX与UNIX SHELL编程指南

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

    Shell编程下的AWK语法小结

    在Shell编程中,AWK是一种强大的文本分析工具,由Alfred Aho、Peter Weinberger和Brian Kernighan三位计算机科学家的名字首字母命名。AWK提供了一种简洁的语法,使得用户可以方便地处理文本数据,包括查找模式、排序...

    Linux与unix shell编程指南

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

    linux shell_6

    #### 6.4 小结 在Linux Shell编程中,使用 `&&` 和 `||` 对构造判断语句非常有用。这些运算符不仅可以提高脚本的安全性,还能增强其灵活性。通过合理运用 `()` 和 `{}`,还可以实现更加复杂和高效的命令组合逻辑。...

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

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

    Linux Shell Programming

    #### 小结 通过以上内容的学习,可以全面了解Linux环境下Korn Shell编程的相关知识,不仅掌握了基本的编程技能,还能运用这些技能解决实际工作中遇到的问题。对于想要深入了解Linux Shell编程的人来说,《Linux ...

    梁博shell脚本训练集训学习小结V0.11

    梁博shell脚本训练集训学习小结V0.11 在 Linux 操作系统中, shell 脚本是非常重要的一部分。shell 脚本可以帮助用户自动化repeatitive任务,提高工作效率。梁博shell脚本训练集训学习小结V0.11主要讲述了shell脚本...

    Linux环境下shell编程

    #### 四、小结 通过本文的学习,读者可以了解到Linux环境下Shell编程的基本概念和常用命令,掌握了这些基本技能之后,可以在日常工作中更高效地完成各种任务。同时,对于更复杂的Shell脚本编写也有了一定的基础。...

    LINUX与UNIX SHELL编程指南 高清PDF

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

    LINUX与UNIX SHELL编程指南LINUX与UNIX SHELL编程指南15

    通过使用引号,我们可以确保字符被当作普通文本处理,而不是特殊的Shell语法。 15.1 引用必要性 在编写脚本时,Shell会解析命令行,对变量和特殊字符进行处理。为了阻止这种解析,我们可以使用引号或反斜线(\)。不...

    Linux与UNIX Shell编程指南.rar

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

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

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

    LINUX与UNIX SHELL编程指南LINUX与UNIX SHELL编程指南23

    ### 小结 有效的调试策略包括仔细检查脚本本身,结合使用`set`命令和`echo`语句。通过这些方法,可以更有效地定位和修复Shell脚本中的问题,从而提高脚本的可靠性和效率。 总的来说,熟练掌握Shell脚本的调试技巧是...

Global site tag (gtag.js) - Google Analytics