您的位置:首页 > 运维架构 > Shell

《Linux程序设计》——shell程序设计

2014-09-17 21:24 288 查看
一、shell

1、什么是shell:一个作为用户和Linux系统间接口的程序,它允许用户向操作系统输入需要执行的命令。

2、Linux安装的标准shell:GNU工具集中的bash。

3、常用shell(P18 表2-1)

4、作为程序设计语言的shell。

二、管道和重定向

1、重定向输出

1)、>:把标准输出重定向一个文件中。

2)、》:将输出内容附加到一个文件中。

3)、对标准错误重定向,需要把重定向文件描述符编号加到>操作符前面。(2>)

2、重定向输入(<)

3、管道

1)、|:用其来链接进程。

注意:如果你有一系列命令需要执行,相应的输出文件是在这一组命令被创建的同时立刻被创建或写入的,所以绝不要在命令流中重复使用相同的文件名。

三、shell的语法

1、变量

1)、在shell中通过在变量名前加一个$符号来访问它的内容。

2)、引号

I、一般情况下,脚本文件中的参数以空白字符分隔,如果你想在一个参数中包含一个或多个空白字符,就必须给它加上引号。

II、把$变量表达式放在双引号中,程序执行到这一行时就会把变量替换为它的值。

III、把$变量表达式放在单引号中,程序执行到这一行时不会发生替换。

VI、可以在$字符加上一个、字符以取消他的特殊含义。

3)、环境变量(P25 表2-2)

4)、参数变量(P26 表2-3)

I、如果脚本程序在调用时带有参数,一些额外的变量就会被创建。即使没有传递任何参数,环境变量$#依然存在,只不过值是0。

2、条件(text或[)

1)、字符串比较(P28 表2-3)

2)、算数比较(P28 表2-4)

3)、文件条件测试(P28 表2-5)

3、控制结构

1)、if语句

if condition

then

statements

else

statements

fi

2)、elif语句



if condition

then

statements

elif [b]condition[/b]

[b] . . .

[/b]

else

statements

fi
3)、for语句

for variable in values

do

statements

done

4)、while语句

while conditions do

statements

done

5)、until语句

until condition

do

statements

done

6)、case语句

case variable in

pattern [ | pattern ] ...) statements;;

pattern [ | pattern ] ...) statements;;

......

esac

7)、命令列表

I、AND列表

statements1 && statements2 && statements3 && . . . .

II、OR列表

statements1 || statements2 || statements3 || . . . .

III、[ -f file_one ] && command for true || command for false

8)、语句块(用花括号{}来构造一个语句块)

4、函数

function_name(){

statements

}

5、命令

1)、break命令(条件未满足之前,跳出for、while或until循环,也可以为break命令提供一个额外的数值来表明需要跳出的循环层数)

2)、:命令(冒号命令是一个空命令,它偶尔会被用于简化逻辑,相当于true的一个别名,此外冒号命令也用于注释)

3)、continue命令(使for、while或until循环跳到下一次循环继续执行)

4)、.命令(点命令用于在当前shell中执行命令)

5)、echo命令(使用恶臭命令来输出结尾带有换行符的字符串)

6)、eval命令(允许你对参数进行求值,通常不会以单个命令的形式存在)

7)、exec命令(将当前shell替换为一个不同的程序,修改当前文件描述符)

8)、exit n命令(使脚本语言以退出码n结束运行,退出码n(P46 表2-7))

9)、export命令(将作为他的参数的变量导入到子shell中,并使之在子shell中有效)

10)、expr命令(将参数当作表达式来求值,求值计算(P48 表2-8))

11)、printf命令(转义序列(P48 表2-9),字符转换限定符(P48 表2-10))

12)、return命令(使函数返回,如果没有指定参数,默认返回最后一条命令额退出码)

13)、set命令(为shell设置参数变量)

14)、shift命令(把所有的参数变量左移一个位置)

15)、trap命令(用于指定在接受到信号后将要采取的行动,信号(P50 表2-11))

16)、unset命令(从环境中删除变量或函数)

17)、正向表达式和另外两个有用的命令

I、另外两个有用的命令

A)、find命令

B)、grep命令

II、正侧表达式

A)、特殊字符(P56 表2-17)

B)、匹配模式(P56 表2-18)

C)、选项(P57 表2-19)

6、命令的执行

1)、算数扩展($((....)))

2)、参数扩展((P60 表2-20))

7、here文档

1)、允许一条命令在获得输入数据时就好像在读取一个文件或键盘一样,而实际上是从脚本语言中等到数据。

8、调试脚本程序(P63 表2-21)

四、dialog工具

1、对话框主要类型(P64 表2-22)

2、参数(P64 表2-23)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: