shell编程
shell是命令解释器,也可以编程.
常用的shell有
ash,bash,ksh,csh,zch
shell中的环境变量
HOME:保存注册目录的完整路径名
PTATH:保存用冒号分隔的路径路径,shell将按此给出的顺序搜索这些目录,查找可执行文件执行
TERM:终端类型
UID:当前用户的标识,一串数字
PWD:绝对路径
shell中的变量
临时变量:shell内部定义,包括自定义变量和位置变量
永久变量:就是环境变量,如$PATH,$LANG,$SHELL,$PS1,$HOME
变量命名:字母,数字,下划线组成,不可以数字开头,读变量用$.
__注:值中有空格,需要使用"",单引号不解释其中变量,双引号会解析其中变量__
shell中其他的预定义临时变量
$# //传给脚本的参数的个数
$0 //脚本本身的名字
$@ //传给脚本所有参数的列表
$* //以一个字符串显示所有向脚本传递的参数
$$ // 脚本运行当前的ID号
$? //显示上条命令的退出状态,0表示无错误,其它表示有错误
shell脚本编写
#! /bin/sh //在shell中#表示注释,第一行的#!为特列,保证解释器解释本脚本
TIME=`date` //反引号``表示会执行反引号里的命令
echo $TIME //读变量是使用$
执行shell
1.给该用户赋予shell的执行权限
2.使用解释器 sh ./xxxx.sh
键盘输入-read
#! /bin/sh
read number
echo $read
算数运算
算数运算使用expr
运算符左右需要空格,加减乘除 ,其中乘的标志需要加转义符,将意思转移为本意乘
expr 3+5 //5
expr 3 + 5 //8
expr 3 / 5 //8
expr 3 \* 5 //15
expr `expr 12 - 7` / 3 //1
循环语句
大于 -gt (greater than)
小于 -lt (less than)
大于或等于 -ge (greater than or equal)
小于或等于 -le (less than or equal)
不相等 -ne (not equal)
if-else
#输出三个参数最大数
#! /bin/sh
if [ $# -lt 3 ];then
echo"numbers is not correct!"
else
echo "ok!!!"
fi
if [ $1 -lt $2 ];then
max=$2
else
max=$1
fi
if [ $max -lt $3 ];then
max=$3
fi
echo "the max number is:$max"
while
#!/bin/sh
i=1
sum=0
while [ $i -lt 100 ]
do
sum=`expr $sum + $i`
((i++))
done
echo $sum
for
#!/bin/sh
sum=0
for i in `aeq 100`
do
sum=`wxpr $sum + $i
i=`expr $i + 1`
done
echo $sum
//或
sum=0
for((i=0;i<=100;i++))
do
sum=`expr $xum + $i`
done
echo $sum