现在的位置: 首页 > 综合 > 正文

Linux 学习笔记_10_Shell编程_1_Shell编程语法

2014年04月05日 ⁄ 综合 ⁄ 共 1722字 ⁄ 字号 评论关闭

一、Shell结构

1、#!指定执行脚本的Shell

2、#注释行,描述该脚本的作用,负责人等信息

3、命令和控制结构

二、创建shell程序的步骤

第一步:创建一个包含命令和控制结构的文件。 

第二步:修改这个文件的权限使它可以执行: chmod u+x 

第三步:执行 ./example 或 . example 或  sh example

 

三、Shell变量

变量:是shell传递数据的一种方法,用来代表每个取值的符号名。 

Shell有两类变量:临时变量和永久变量。 

临时变量是shell程序内部定义的,其使用范围仅限于定义它的程序,对其它程序不可见。包括:用户自定义变量、位置变量。

永久变量是环境变量,其值不随shell脚本的执行结束而消失。

 

1、用户自定义变量

用户定义的变量由字母或下划线开头,由字母、数字或下划线序列组成,并且大小写字母意义不 

同。变量名长度没有限制。在使用变量值时,要在变量名前加上前缀“$”。 

 

2、设置和使用变量

设置变量:习惯上用大写字母来命名变量。变量名只能以字母表中的字符开头,不能用数字。 

变量赋值:赋值号“=”两边应没有空格。 

定义时赋值,如NUM=1 

将一个命令的执行结果赋给变量,如:TIME=`date` ;TIME=$(date +%F)

将一个变量赋给另一个变量,如:A =$B 

使用echo命令查看变量值。例如:echo $A 

 

3、包含多个字的变量: 

NAME=Mike Ron  //运行时出错,应改为:

NAME=“Mike Ron” 或 $NAME=‘Mike Ron’ 

 

4、单引号与双引号的区别

比如:定义DATE=$(date +%F)

time=”time is $DATE”

echo $time // time is 2014-01-28 

time='time is $DATE'

echo $time // time is $DATE

单引号之间的内容原封不动地指定给了变量。 

 

5、 set查看系统中定义的所有变量

        unset删除所定义的变量

 

6、位置变量

Shell解释执行用户命令时,将命令行的第一个部分作为命令名,其它部分作为参数。由出现 

在命令行上的位置确定的参数称为位置参数。 

例如: 

ls -l file1 file2 file3 

$0 这个程序的文件名 ls -l 

$n 这个程序的第n个参数值,n=1~9 

 

7、特殊变量

$* 这个程序的所有参数 

$# 这个程序的参数个数 

$$ 这个程序的PID 

$! 执行上一个后台命令的PID 

$? 执行上一个命令的返回值

 

四、Shell命令

1、read命令

read USERNAME

【read 使用示例】 

#! /bin/sh 

read first second third 

echo "the first parameter is $first" 

echo "the second parameter is $second” 

echo "the third parameter is $third" 

执行时使用sh -x 命令:单步显示执行,在学习时,建议使用-x选项

 

2、expr命令,对整型变量进行运算

如: expr 3 + 5 

expr $var1 - 5 

expr $var1 / $var2 

expr $var3 \* 10 

复杂的运算: 

expr `expr 5 + 7`/$var4 

将运算结果赋予变量: 

var4=` expr $var1 / $var2 ` 

【expr示例】

#!/bin/sh 

a=10 

b=20 

c=30 

value1=`expr $a + $b + $c` 

echo "The value of value1 is $value1" 

value2=`expr $c / $b` 

echo "The value of value2 is $value2" 

value3=`expr $c \* $b` 

echo "The value of value3 is $value3" 

value4=`expr $a + $c / $b` 

echo "The value of value4 is $value4" 

抱歉!评论已关闭.