赞
踩
Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序用户可以用Shell来启动、挂起、停止以及编写一些程序。
1.格式
脚本以 #!/bin/bash开头
脚本需要有可执行权限(chmod 744 filename)
注释 :<<!内容 !
2.Shell变量
Shell变量分为系统变量和用户自定义变量
系统变量:$HOME, $PWD, $SHELL, $USER等
变量定义
1)定义变量:变量 = 值
2)撤销变量:unset 变量
3)声明静态变量:readonly 变量
#!/bin/bash
A=100
echo "A=$A"
unset A
echo "A=$A"
变量名规则
1)变量名可以有字母、数字、下划线组成,但不能以数字开头
2)等号两侧不能有空格 即A=100而不是A = 100
3)变量名称一般为大写
命令的返回值赋值给命令
1)反引号
2)$()
#!/bin/bash
RESULT=`ls -l /home`
echo $RESULT
echo " "
MY_DATE=$(date)
echo "date=$MY_DATE"
3.查看环境变量
#!/bin/bash
echo "path=$PATH"
4.位置参数变量
用户获取命令行的参数消息
$n:n为0代表命令本身,其余n-1表示参数,n大于9时,用 ${n}表示
$*:代表命令行中的所参数,并把所有参数看出一个整体
$@:代表命令行中的所有参数,并把每个参数分区对待
$#:代表命令行中参数的个数
#!/bin/bash
echo "$0 $1 $2"
echo "$*"
echo "$@"
echo "param_num=$#"
5.预定义变量
指Shell设计者事先定义好的变量,可以直接在Shell脚本中使用
$$ :表示当前进程的进程号(PID)
$!:表示后台运行的最优一个进程的进程号
$?:表示最后一次执行命令的返回状态(0代表执行正确,非0代表执行错误,具体是几由命令本身决定)
6.运算符
1) $((运算式)) 或者 $[运算式]
2)expr m+n
3)expr * / % 分别代表乘 除 取余
#!/bin/bash
TEMP=`expr 2+3`
RESULT=`expr $TEMP \* 4`
echo "result=$RESULT"
求命令行的两个参数的和
#!/bin/bash
SUM=$[$1+$2]
echo "sum=$SUM"
7.条件判断
[ condition ] (注意condition前后要有空格)
非空返回true
常用判断条件
1)比较两个整数
= 字符串比较
-lt 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于
2)按照文件权限进行判断
-r 可读
-w 可写
-x 可执行
3)按照文件类型判断
-f 文件存在并且是一个常规的文件
-e 文件存在
-d 文件存在并且是一个目录
#!/bin/bash
if [ -e /user/local ]
then
echo "exist"
fi
8.IO流程控制
if判断
if [ condition ]
then
程序
fi
或者
if [ condition ]
then
程序
elif [ condition ]
then
程序
fi
case语句
case $变量名 in
"值 1“)
程序
;;
"值 2“)
程序
;;
............
*)
程序
;;
esac
for循环
for 变量 in 值1 值2.....
do
程序
done
for (( 初始值;循环控制条件;))
do
程序
done
while循环
while [ 条件判断式 ]
do
程序
done
9.读取控制台的输入
read (选项)(参数)
-p 指定读取值时的提示符
-t 指定读取值时等待的时间(秒)如果超时则停止等待
10.函数
分为系统函数和自定义函数
系统函数举例
basename /home/test.txt 返回test.txt
basename /home/test.txt .txt 返回test
dirname /home/aaa/test.txt 返回/home/aaa
自定义函数
[ function ] funname[()}
{
Action;
[return int;]
}
调用 funname [值]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。