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

Unix--系统下Shell语法分析

2011-11-06 23:39 225 查看
Shell可以看作是一个命令行解释器,它是Unix操作系统下传统的用户和计算机的交互界面,用户直接输入命令来执行各种各样的任务,它类似于Windows 9X下的command.com或者是基于Windows NT的各种系统下的cmd.exe;同时Shell又是一种程序设计语言,它可以交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令。
Linux系统提供多种不同的Shell以供选择。常用的有Bourne Shell(简称sh)、C-Shelll(简称csh)、Korn Shell(简称ksh)和Bourne Again Shell (简称bash)。

Shell脚本执行方式:

(1) 输入定向到Shell脚本(Shell从文件中读取命令后执行)

bash < 脚本名

(2) 以脚本名作为参数(也可以:· 脚本名参数)

bash 脚本名 参数1 参数2

(3) 将Shell脚本的权限设置为可执行,然后在提示符下直接执行它。

chmod a+x 脚本名

脚本名

注意:如果在shell中指定了#!/bin/bash;可以不用在crontab中写bash,直接/xx/xx/xx.sh即可

Shell语法分析:

1.变量:

(1)定义:变量名=字符串

(2)使用(打印变量的值): echo $变量名

(3)变量赋值:

普通的赋值

xx="dd dkkd dd"

将命令的结果赋值,有两种形式

a) `命令`:

var = ` pwd `

b) $(命令):

var=${pwd}

2.数组:

(1)定义:

a) 数组名[下标]=值

b) declare -a 数组名

c) a=(a1 a2 a3 a4)

(2)数组值:

${数组名[下标]}

若没有给出数组元素的下标,则数组名表示下标为0的数组元素

表达式${#arr[i]}的值是数组arr第i个元素值的长度(字符个数)。

3.通配符:

* 表示匹配任意字符0次或多次出现

?表示匹配任意一个字符

[ ]表示其中任何一个字符

! 表示不在一对方括号中所列出的字符,a[!1-9] 即 a非1-9数字

+ 表示匹配任意字符1次或多次出现

(xx | xx) 表示或关系

4.引号:

(1)单引号: 普通字符

(2)双引号:除“$”、“`”、“"”、“\”或换行符外,其他都作为普通字符

$ 表值

\ 转义字符

(3)倒引号: 命令行

如:pwd `

5.条件语句:

(1)if

if 条件
then 命令1
else 命令2
fi

(2)case

case 字符串 in
模式字符串1) 命令

命令;;
模式字符串2) 命令

命令;;

模式字符串n) 命令

命令;;
Esac

例如:

case $1 in

one)

echo "one"

;;

two)

echo "two"

;;

three)

echo "three"

;;

*)

echo "ohter"
exit 1

esac

6.循环语句:

(1)while

while 条件
do
命令
Done

(2) until

until 测试条件
do
命令表
Done

(3)for

for 变量 in 值(正则表达式)
do
命令表
Done

7.Break与Continue

break n :表示跳出几层循环,默认值是1,表示只跳出一层循环

continue n :表示从最内层循环体向外跳到第几层循环,默认值是1

8.函数:

函数声明如下:

函数名( )
{
命令
}

函数定义也可以通过function关键字声明:function函数名(){}

注:可以通过return n 退出函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: