Shell编程

文章介绍了如何在Linux环境下创建和调用bash脚本,包括使用source或完整路径的方式。接着展示了while循环计算数字之和的示例,以及使用双括号进行高级数学表达式。文章还涉及数组的使用,如冒泡排序算法,并通过case语句实现根据输入返回特定字符串的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

调用脚本

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

让线程再跑一会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值