1.case的命令格式
#!/bin/sh
echo "please input number 1 to 3"
read number
case $number in
)
echo "you input 1"
;;
)
echo "you input 2"
;;
)
echo "you input 3"
;;
*)
echo "error"
;;
esac
esac是case的反写
2.if命令格式
#!/bin/sh
if [ "" -lt "" ]; then
echo "10<12"
else
echo "10>12"
fi
3.变量的含义
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
#!/bin/sh
echo "number:$#"
echo "name:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
echo "parm list:$*"
echo "process id:$$"
echo "exit stat: $?"
4.[]与[[]]
使用[[时有时会显示[[: not found 此时可能是bash的版本问题。
[[]]与[]相比支持正则
5.数组
#!/usr/bin/env bash
a=( )
echo $a #第一个元素
echo ${a[]} #第一个元素
echo ${a[*]} #所有元素
echo ${a[@]} #所有元素
#unset a #删除所有元素
#unset a[] #删除第一个元素
echo ${a[@]::} #${数组名[@或*]:起始位置:长度} 切片原先数组返回新的数组
echo ${a[@]//} #将第2个元素替换为99
uname 显示系统信息 (缺省 -s 显示操作系统名称)
dirname 从文件名中剥离非目录的后缀
反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量
2>&1 把错误重定向到标准输出
标准的输入,输出和错误输出分别表示为STDIN,STDOUT,STDERR,也可以用0,1,2来表示
shift命令一次删除当前的参数使后一个餐宿前移
stty 改变并打印终端行设置
%~dp0代表的是.sh文件所在的文件目录