【linux】shell脚本编写基础
shell 脚本关键字:
1、变量定义:=前后不能空格
输入:
zhao="Joe"
echo ${zhao}
echo "I am ${zhao}"
输出:
yuxin
I am Joe
2、echo 输出
输入:
echo "123"
输出:
123
3、readonly 定义变量为只读变量:先定义变量再定义只读变量
输入:
zhao="Joe"
echo "you are ${zhao}"
readonly zhao
zhao="Joe1"
echo "I am ${zhao}"
输出:
you are Joe
I am Joe
script.sh: line 5: zhao: readonly variable
4、删除变量
输入:
zhao="Joe"
unset zhao
echo ${zhao}
无输出
5、整型
declare -i num=1
typeset num=1
6、字符串
str='123' #单引号中间不可以有变量,可以拼接 双引号可以有变量
echo ${#str} # 读取字符串长度
echo ${str:1:2} # 提取子字符串
echo `expr index "$str" 32` # 查找子字符3或2的位置
7、数组
array=(1 2 3 4 5)
array[0]=1 # 读取数组元素
array[@] # 读取所有数组元素
length = ${#array[@]} # 数组元素个数
关联数组:
declare -A array # -A 声明一个关联数组,绑定键值对
declare -A site
site["google"]="www.google.com"
site["runoob"]="www.runoob.com"
site["taobao"]="www.taobao.com"
${!site[*]} # 获取所有的键
${site[*]} # 获取所有的值
8、expr表达式工具
var=expr 2 + 2
9、test 检查某个条件是否成立
num1="ru1noob"
num2="runoob"
if test $num1 = $num2
thenecho '两个字符串相等!'
elseecho '两个字符串不相等!'
fi
10、判断
f condition1
thencommand1
elif condition2
then command2
elsecommandN
fi
11、循环
for var in item1 item2 ... itemN
docommand1command2...commandN
donewhile condition
docommand
doneuntil condition
docommand
done
case 值 in
模式1)command1command2...commandN;;
模式2)command1command2...commandN;;
esac