调用脚本
1、在用户目录 ~/bin/ 下创建脚本1
cd ~/bin/
vim addNum
#!/bin/bash
#变量和等号之间不可以有空格
NUM1=$1
NUM2=$2
RES=$NUM1+$NUM2
echo "$RES"
测试脚本1
[lyh@localhost bin]$ chmod 744 ./addNum
[lyh@localhost bin]$ ./addNum 3 4
[lyh@localhost bin]$ 7
创建脚本2
[lyh@localhost bin]$ vim test
在脚本2中调用脚本1
如果两个脚本不在同一个目录,需要使用脚本的完整路径
#!/bin/bash
echo "第1种方式调用脚本1: "
source ./addNum 3 4
echo "第2种方式调用脚本1: "
./addNum 2 5
测试脚本2
[lyh@localhost bin]$ chmod 744 test
[lyh@localhost bin]$ ./test
第1种方式调用脚本1:
7
第2种方式调用脚本1:
7
while 循环
案例-输出0到n的和
双括号
双括号命令允许在比较过程中实用高级数学表达式。比如我们的位移运算符(<< >>)、布尔运算符(& | ~ )、逻辑运算符(&& || )以及(后增val++ 后减val-- 先增++val 先减--val)等。 --《linux命令行与shell脚本编程大全》
#!/bin/bash
SUM=0
i=0
#也可以写做 (($i <= $n))
while [ $i -le $1 ]
do
SUM=$(($SUM+$i))
((i++))
done
echo "SUM=$SUM"
数组+for循环
输出数组内容的两种方式
echo ${arr[@]}
案例-数组冒泡排序
用户输入数组中的内容,通过冒泡排序输出排序后的结果
#!/bin/bash
#预先定义全局变量
arr=("$@")
echo "您输入了 $*"
echo "数组内容:"
echo ${arr[@]}
echo "for循环输出数组内容: "
for i in $@;do
echo $i
done
find_max (){
# 获取数组长度
len=${#arr[@]}
# 冒泡排序
for ((i=0;i<$len-1;i++)); do
for ((j=0;j<$len-1-$i;j++)); do
if [ ${arr[$j]} -gt ${arr[$j+1]} ]
then
temp=${arr[$j]}
arr[$j]=${arr[$j+1]}
arr[$j+1]=$temp
fi
done
done
}
find_max
echo "排序结果:"
echo ${arr[@]}
运行结果
case
输入1、2输出周一或周二,输入别的输出"other"。
#!/bin/bash
case $1 in
"1")
echo "周一"
;;
"2")
echo "周二"
;;
*)
echo "other"
;;
esac