调用脚本
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