shell中的函数

  1. 整理思维导图

  1. 写一个函数,获取用户的uid和gid并使用变量接收
#!/bin/bash

function get()
{
	user=`whoami`
	uid=`id -u $user`
	gid=`id -g $user`
	echo "该用户的uid为$uid"
	echo "该用户的gid为$gid"

}
get

  1. 整理冒泡排序、选择排序和快速排序的代码

冒泡排序

#!/bin/bash
arr=(9 8 15 2 12 5)
length=${#arr[@]}
function bubble()
{
for ((i=0; i<$length-1; i++))
do
    for ((j=0; j<$length-i-1; 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

echo "排序后的数组:${arr[@]}"
}

bubble

选择排序

#!/bin/bash
arr=(4 55 12 32 24 63)
length=${#arr[@]}
function simple()
{
	i=0
	j=0
	min=0
	for((i=0;i<length-1;i++))
	do
		min=$i
		for((j=i+1;j<length;j++))
		do
			if [ ${arr[$j]} -gt ${arr[$min]} ]
			then
				min=$j
			fi
		done

		if [ $min -ne $i ]
		then
			temp=${arr[$min]}
			arr[$min]=${arr[$i]}
			arr[$i]=$temp
		fi
	done
		
	echo "排序之后为${arr[*]}"
}
simple

快速排序

 

#!/bin/bash 

quick_sort() {
    local arr=("$@")
    local left=()
    local right=()
    local pivot=${arr[0]}  # 选择第一个元素作为基准

    if [ ${#arr[@]} -le 1 ]; then
        echo "${arr[@]}"
        return
    fi

    for i in "${arr[@]:1}"; do
        if [ $i -lt $pivot ]; then
            left+=($i)
        else
            right+=($i)
        fi
    done

    echo "$(quick_sort "${left[@]}") $pivot $(quick_sort "${right[@]}")"
}

arr=(9 4 6 2 7 1 5 3 8)
sorted_arr=$(quick_sort "${arr[@]}")
echo "排序后的数组:$sorted_arr"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值