目录
1_打印字符串
2_输入
3_比较字符
4_拼接字符串
5_数组
1_打印字符串
a="hello"
b="world"
echo $a $b
输出如下,,echo会原封不动打印ab $a $b因为加入了空格,所以有空格
补充:左右两边加双引号表示是字符串,也可以去掉,是一样的
2_输入
echo please enter a:
read a
echo please enter b:
read b
c=`expr $a + $b`
echo $a + $b = $c
3_比较字符
password="hello123"
echo please enter password:
read userPassword
if [ $password = $userPassword] # linux脚本里面一个=, 且左右两边加空格,这个格式用来做比较
# c里面是strcmp java里面是.equals作比较
then
echo "密码正确!"
else
echo "密码错误!"
fi
结果
不等于 !=
password="hello123"
echo please enter password:
read userPassword
if [ $password != $userPassword] # linux脚本里面一个=, 且左右两边加空格,这个格式用来做比较
# c里面是strcmp java里面是.equals作比较
then
echo "密码错误!"
else
echo "密码正确!"
fi
4_拼接字符串
str1="hello"
str2="world"
str3="$str1 $str2"
echo $str3
输出:hello world
如果不加中间空格,如下
判断是否是空字符串
str1="hello"
str2="world"
if [ -z $str1]
then
echo "str1 是空的"
else
echo "str1 不是空的"
fi
-z 表示判断是不是0
-n 表示判断是不是不是0 not zero
5_数组
sh 是最原始的脚本处理语言1979年
bash 是后来发展出来的,如果涵盖有array,请用bash才能运行
arr=(7 8 9 10)
sh会报错,如下
bash test.sh就没问题
1_Linux写出数组中的一个数 会比较麻烦 ${arr[1]} 下角标是1
arr=(7 8 9 10)
echo ${arr[1]}
2_想把数组里面内容都打出来用 for循环
arr=(7 8 9 10)
for i in $arr{[@]}
do
echo $i # 这里的i走的循环是循环的数组本身,而不是角标
done
3_求所有数组数字的和
4_所有数组数字最大值
-gt greater than