#!/bin/bash
#这是单行注释
:<<flag
这里是多行注释
上面的flag可以是其他符号
flag
#简单变量的使用
name="hurricane"
echo $name
echo ${name}aaa #花括号用来区分边界,使用花括号是一个好习惯
#只读变量
sex=male
readonly sex
sex=female
echo $sex
#删除变量
# unset name
# echo name is $name
#字符串拼接
#both="this "${name}", sex is "${sex}
both="this ${name}, sex is ${sex}"
echo $both
#获取字符串长度
echo ${#both}
#截取字符串
echo ${both:5:9}
#查找字符串
echo `expr index "${both}" hurricane`
#数组
arr=(val1 val2 val3)
arr[3]=val4
#获取数组中指定元素
echo ${arr[1]}
#获取数组中所有元素
echo ${arr[@]}
echo ${arr[*]}
#获取数组中元素个数
echo ${#arr[@]}
echo ${#arr[*]}
#获取数组中某个元素的长度
echo ${#arr[1]}
#获取程序的传入参数,注意$*与$@的区别
echo "参数个数:$#,参数字符串:$*,脚本运行的进程ID:$$"
echo "执行的文件名:$0"
echo "第一个参数:$1"
echo "第二个参数:$2"
#算数运算符,可用的有:+,-,*,/,%,=,==,!=
val=`expr 2 + 2`
echo $val
echo `expr 2 == 3`
#if判断,常与test结合使用,test与中括号的作用相同
#if中使用test:布尔判断:!,-o,-a;数值判断:-eq,-ne,-gt,-ge,le,le;字符串判断:=,!=,-z,-n
#文件判断:-e,-r,-w,-x,-s,-d,-f,-c,-b
if [ -n "$2" ];then
echo "包含第二个参数"
elif [ -n "$1" ];then
echo "包含第一个参数"
else
echo "没有包含参数"
fi
#test使用格式如下
if test ! "aaa" = "aaa";then
echo "str is equal"
fi
#for循环
for file in `ls ~`; do
echo $file
done
#遍历自定义的数组
for skill in aaa bbb ccc;do
echo $skill
done
i=0
#while循环
while (( $i<5 ))
do
echo $i
let "i++"
done
#读取控制台输入的内容,continue,break的使用
echo -n "输入你的名字:"
while read name
do
if [ $name == "tornado" ];then
continue
fi
echo "你好,$name"
break
done
#printf的简单使用,-表示左对齐,没有表示右对齐
printf "%-10s %-8s %-4.2f\n" hurricane male 66.1234
#函数的简单使用
add(){
sum=0
for item in $@;do
#下面两种方式都可以实现累加操作
sum=`expr $sum + $item`
# let "sum=sum+item"
done
return $sum
}
add 1 2 3
echo "返回结果:$?"
liunx中[],[[]],(),(())的使用参考:https://www.jianshu.com/p/17a3316a8409
参考: