#! /bin/sh //告知UNIX内核使用哪个SHELL来执行该脚本 (#! 路径)
//or
#! /bin/csh -f //后面也可带参数
echo用法
#!/bin/sh
#create by sue 2016.05.20
echo -n "Input your name:"
read NAME
echo "Hello,"$NAME"."
Shell中的变量分类
环境变量
HOME
LANG
SHELL
PATH
PS1
PS2
可在终端查看修改环境变量 echo $HOME
修改环境变量PS2 = “:” //把辅助提示符修改为:
位置变量
预定义变量
常见的预定义变量
0:保存当前进程/脚本的名称
* : 保存脚本的所有参数
$$ : 保存当前进程/脚本的PID(进程)号
$# : 脚本的参数个数
$? : 返回上个脚本的是否执行成功状态(0成功1失败)
$! : 后台运行的最后一个进程的PID(进程)号
echo "script name:"$0
echo "all parameters:"$*
echo "PID is the script":$$
echo "success of the previous command:"$?
自定义变量
作用域:使用export定义的为全局变量,可以在当前用户的任意脚本\命令中使用;不使用expoet,作用域为整个脚本.
1.NAME = jhon //定义变量NAME并赋值
2.如需经常使用的变量可定义为一个环境变量
BACKUP_DIR = /file/backup
export BACKUP_DIR
3.不能修改值的只读变量
PI = 3.14
readonly PI
4.使用变量时,要使用变量引用符”
”echo−n“Inputyourname:”readNAMEecho“Hello,”
NAME”.”
猜数游戏脚本
RAN = `expr $RANDOM % 10`
RAN = `expr $RAN + 1`
echo "this is a guessing game"
echo "Number range:1-10"
while true
do
echo -n "please enter the number you think:"
read NUM
if [$NUM -lt 1] || [10 -lt $NUM]
then
echo "you enter the number out of range"
continue
fi
if [$NUM = $RAM]
then
echo "you guessed it"
unset NUM RAM
exit 0
fi
if [$NUM -lt $RAM]
then
echo"you enter the number is too small"
else
echo"you enter the number is too large"
fi
done
shell 中的数组
ARRAY = {123 457 99 379 622 895 111 45 1000}
LENTH = ${#ARRAY[@]}
I = 0
while["$I" -lt "$LENTH"]
do
J = `expr $I +1`
while ["$J" -lt "$LENTH"]
do
if [ "${ ARRAY[J] }" -lt "${ ARRAY[I] }" ]
then
TEMP = ${ ARRAY[J] }
ARRAY[J] = ${ ARRAY[I] }
ARRAY[I] = $TEMP
fi
J = `expr $J +1`
done
I = `expr $I +1`
done
echo ${ARRAY[@]}
unset ARRAY I J TEMP LENTH