shell 灵巧小 方便
shell编程语法
1 #! 指定执行脚本的shell 选择s shell 具有公用性,建议用此种shell,不写就用默认的来执行
2 # 表示注释行
3 命令和控制结构
echo 直接输出显示命令,如果没有任何内容,则显示一个空行
变量定义:是shell传递数据的一种方法,用来代步每个取值的符号名。
shell有两类变量:临时变量和永久变量。
临时变量是shell程序内部定义的,其使用范围仅限定于定义它的程序,对其它程序不可见。包括:用户自定义变量、位置变量。
永久变量是环境变量,其值不随shell脚本的执行结束而消失。
[root@osg work]# echo $LANG
en_US.UTF-8
[root@osg work]# ECHO $SHELL
bash: ECHO: command not found
[root@osg work]# echo $SHELL
/bin/bash
[root@osg work]# echo $PS
[root@osg work]# echo $PS1
[\u@\h \W]\$
用户定义的变量由字母和下划线开头,大小写敏感,一般建议用大写定义变量名,不要用数字作为shell变量的开头,$调用。
变量赋值用“=”号
NUM=100
TIME='DATA
TIME=$(data+%F)
echo $TIME
set 列出所有变量
unset 删除变量
位置变量:shell解释执行用户命令时,将命令行的第一个部分作为命令名,其它部分作为参数。由出现命令行上的位置确定的参数称为位置参数。
特殊变量:$* 这个程序的所有参数
$# 这个程序的参数个数
$$ 这个程序的PID
$! 执行上一个后台命令的PID
$? 执行上一个命令的返回值 返回值 0和非0
read命令:从键盘读入数据,赋给变量 只要需要互动,就需要read
如: read
sh -x read+read first second third 调试与提示,加上-x 有利于查看此脚本时怎么执行的。
赋值的时候用" '类同php中是否支持转义,'单引号会原封不动的指定给变量。
shell变量的算术运算 expr命令
expr 3+5
expr $var1-5
expr $var1/$var2
expr $var3\*10
只能进行整形的运算
可以用· 命令替换符 做分割和赋值
d=`5+7`/1 先加减后乘除
创建shell程序的步骤: 能够自动化的尽量自动化
第一步 创建一个包含命令和控制结构的文件。
第二步 修改这个文件的权限使它可执行 chmod u+x
第三步 执行 sh xx.sh
or
./xx.sh
shell脚本调试
shell应用实例