myShellName () {
command1
}
函数调用 myshellname
变量 $myvar
如果变量的结果和其它字符串连接在一起时 为了便于区分需
要将${变量名}xxx
echo ${name}isverygood
$?:上一个命令的退出状态 0:成功 非0:失败
read NUM
echo "1+1=$NUM"
variableName="variableName"
使用一个定义过的变量,只要在变量名前面加符号$
str="hello world"
echo $str
echo ${str}
str="hello world"
str="hello world1"
readonly str
str="hello world1"
echo ${str}
str="hello world"
unset str
$0
$n
$*
$?
$$
逻辑与: 只有两个表达式都为真时,结果才为真。
command1 && command2
逻辑或:只少有一个为真,结果就为真。
command1 || command2
格式:
[ 表达式 ]
test 表达式 -d 是否为存在的目录 -f 是否为存在的文件 -e 是否存在
[[ 表达式 ]]
test 3 -gt 2 echo $?
[ 3 -gt 2 ] echo $?
[]和内容之间一定要有空格,否则抛错。
分支语句 格式一
if [ 条件判断 ]
then
//命令
fi
格式二
if [ 条件判断 ]; then
//命令
fi 将if反过来写,就成为fi 结束if语句
双分支结构
if [ 条件1 ];then
条件1成立执行,指令集1
else
条件1不成执行指令集2
fi
例子:
if [ $1 -gt 3 ];then
echo "$1 > 3 is true"
else
echo "$1 <= 3 is true"
fi
判断用户输入的是哪个数
read -p "please input a number[1,7]:" num
case $num in
1)
echo "Mon"
;;
2)
echo "Tue"
;;
3)
echo "Wed"
;;
4)
echo "Thu"
;;
5)
echo "Fir"
;;
[6-7])
echo "Weekend"
;;
*)
echo "please input [1,7]"
;;
esac
while循环语句
例子:
while true
do
uptime
sleep 2
done
i=$((i+1))
let i=$i+1
shell 脚本检查
sh -n script.sh -n :不执行script,仅查询语法的问题;
将一个命令执行结果输出到一个文件中
echo “hello world” > hello.txt
echo "hello world" >> hello.txt
在Shell中最常用的就是字符串和数字,字符串可使用单引号也可以使用双引号
双引号里可以有变量,单引号则原样输出
双引号里可以出现转义字符,单引号则原样输出 单引号字串中不能出现单引号,而双引可以
DATE=`date`
= 检测两个字符串是否相等,相等返回 true
!= 检测两个字符串是否相等,不相等返回 true。
-z 检测字符串长度是否为0,为0返回 true。
-n 检测字符串长度是否为0,不为0返回 true
str 检测字符串是否为空,不为空返回 true