1.显示普通字符
echo "jack 身高 188"
#输出结果:jack 身高 188
2.显示转义字符
echo " \" jack 身高 188 \" "
#输出结果: " jack 身高 188 "
3.打印变量
name="Jack"
echo "${name} 身高 188"
#输出结果:jack 身高 188
4.开启转义字符并换行 -e
echo -e "jack\n身高 188"
echo "好高啊"
#输出结果:
jack
身高 188
好高啊
5.开启转移字符结尾不换行 \c
echo -e "jack\n身高 188\c"
echo "好高啊"
#输出结果:
jack
身高 188好高啊
6.打印系统时间(单引号)
echo `date`
7.退出命令exit
echo "第一句话"
exit
echo "第二句话"
#结果:第二句打印不会执行
方式一:直接赋值
array=("1" "2" "3" 4)
方式二:先创建再赋值
array2=()
array2[0]="5"
array2[1]="6"
array2[2]="7"
array2[3]=8
1.直接打印数组变量,默认是打印第一个元素
echo $array
2.根据下标打印
echo ${array2[3]}
3.打印整个数组
# #打印数组-结果拆分多个字符串
echo ${array[@]}
# #打印数组-结果拼成一个字符串
echo ${array[*]}
4.获取数组长度#
echo "数组的长度:${#array[@]}"
num1=100
num2=50
# 加
plus=`expr $num1 + $num2`
# 减
minus=`expr $num1 - $num2`
# 乘 *前面要转义
cheng=`expr $num1 \* $num2`
# 除
#chu=`expr $num1 / $num2`
# 还有一种常用写法
chu=$[ $num1 / $num2 ]
# 模
mo=`expr $num1 % $num2`
# 赋值=
fuzhi=$num2
# ==
if [ $num1 == $num2 ]
then
echo "num1 等于 num2"
else
echo "num1 不等于 num2"
fi
echo "加:$plus 减:$minus 乘:$cheng 除:$chu 模以:$mo 赋值变量:$fuzhi"
#运行结果:
#num1 不等于 num2
#加:150 减:50 乘:5000 除:2 模以:0 赋值变量:50
num1=100
num2=200
if [ $num1 -ge $num2 ]
then
echo "num1 大于等于 num2"
else
echo "num1 不大于等于 num2"
fi
#结果:num1 不大于等于 num2
num1=100
num2=200
if [ $num1 != $num2 ]
then
echo "num1不等于num2"
else
echo "num1等于num2"
fi
#结果:num1不等于num2
if [ $num1 -gt 0 -o $num2 -lt 0 ]
then
echo "条件成立"
else
echo "条件不成立"
fi
#结果:条件成立
if [ $num1 -gt 0 -a $num2 -lt 0 ]
then
echo "条件成立"
else
echo "条件不成立"
fi
#结果:条件不成立
num1=100
num2=200
if [ $num1 -ge 100 ] || [ $num2 -lt 200 ]
then
echo "逻辑或关系成立"
else
echo "逻辑或关系不成立"
fi
#结果:逻辑或关系成立
&&
num1=100
num2=200
if [[ $num1 -eq 100 && $num2 -ne 200 ]]
then
echo "逻辑与关系成立"
else
echo "逻辑与关系不成立"
fi
#结果:逻辑与关系不成立
1.判断字符串相等
string="111"
if [ $string = "111" ] #判断不等用 !=
then
echo "sting等于111"
else
echo "string不等于111"
fi
#结果:sting等于111
2.判断字符串是否有值
string="111"
if [ $string ]
then
echo "字符串不为空"
else
echo "字符串为空"
fi
#结果:字符串不为空
3.判断字符串长度是否为0, 为0返回true
string="111"
if [ -z "$string" ]
then
echo "字符串长度为0"
else
echo "字符串长度不为0"
fi
#结果:字符串长度不为0
4.判断字符串长度是否不为0, 不为零返回true
注意:$string要用" "括起来,不然判断不准!
string="111"
if [ -n "$string" ]
then
echo "字符串长度不为0"
else
echo "字符串长度为0"
fi
#结果:字符串长度不为0
file="/Users/yangyujing/Documents/bash练习/basic.sh"
if [ -d $file ]
then
echo "这是一个目录"
else
echo "这不是一个目录"
fi
if [ -r $file ]
then
echo "可读"
else
echo "不可读"
fi
if [ -w $file ]
then
echo "可写"
else
echo "不可写"
fi
if [ -x $file ]
then
echo "可执行"
else
echo "不可执行"
fi
if [ -e $file ]
then
echo "文件存在"
else
echo "文件不存在"
fi
if [ -f $file ]
then
echo "普通文件"
else
echo "目录或系统文件"
fi
if [ -s $file ]
then
echo "文件有内容"
else
echo "文件没有内容"
fi
#结果:
#这不是一个目录
#可读
#可写
#可执行
#文件存在
#普通文件
#文件有内容
示例:
num1=100
if [ $num1 -lt 100 ]
then
echo "条件1成立"
elif [ $num1 -ge 100 ]
then
echo "条件2成立"
else
echo "两个条件都不成立"
fi
#结果: 条件2成立
语法:
for 变量名 in item1 item2 item3 …
do
代码
done
示例1:
for name in "jack" "rose" "jordan"
do
echo $name
done
for string in i don\`t konw
do
echo $string
done
示例2: 循环遍历变量
#遍历数组
array=("111" "222" "333")
for num in ${array[@]}
do
echo $num
done
#遍历字符串
string="i don\`t konw"
for str in $string
do
echo $str
done
示例3:读取目录下文件名称(*通配符)
file="/Users/yangyujing/Desktop/*"
for filename in $file
do
echo $filename
done
示例4:变量控制for循环
for ((a=0; a<5; a++))
do
echo $a
done
语法:
while(条件)
do
代码
done
示例:
num=10
while (($num >0))
do
num=`expr $num - 1`
echo $num
done
无限循环
while true
do
echo "无限循环"
done
num=2
case $num in
1)
echo "1"
;;
2)
echo "2"
;;
3)
echo "3"
;;
esac
#结果: 2