linux shell脚本 排序

 

<pre class="plain" name="code">#!bin/bash

#选择排序

values=(39 5 36 12 9 3 2 30 4 18 22 1 28 25)

numvalues=${#values[@]}

for (( i=0; i < numvalues; i++ )); do

      lowest=$i

      for (( j=i+1; j < numvalues; j++ )); do

          if [ ${values[j]} -le ${values[$lowest]} ]; then

              lowest=$j

          fi

      done

      temp=${values[i]}

      values[i]=${values[lowest]}

      values[lowest]=$temp

  done


echo ${values[*]}




 

#冒泡排序
li=(1 4 2 7 9 5 6 3 8 0)

num=${#li[@]}

for (( i=0; i<num; i++)); do

   for (( j=i+1; j<num; j++ )); do

        if [ ${li[i]} -gt ${li[j]} ]; then

           temp=${li[j]}

           li[j]=${li[i]}

           li[i]=$temp
        fi

   done

 done

echo ${li[*]}

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux Shell脚本是一种非常有趣的编程语言,可以用来自动化许多常见的系统管理任务,如备份、日志分析、监控等。以下是几个趣味的Shell脚本示例: 1. 生成随机密码 ```bash #!/bin/bash PASSWORD=$(date +%s | sha256sum | base64 | head -c 12 ; echo) echo "Your password is: $PASSWORD" ``` 这个脚本会生成一个随机的12位密码,并输出到屏幕上。密码是由当前时间经过SHA256哈希、Base64编码生成的。 2. 统计单词出现次数 ```bash #!/bin/bash if [ $# -ne 1 ]; then echo "Usage: $0 <filename>" exit 1 fi FILENAME=$1 tr -c '[:alnum:]' '[\n*]' < $FILENAME | sort | uniq -c | sort -nr ``` 这个脚本会读取一个文件,并统计其中每个单词出现的次数。它使用了Linux提供的一些文本处理工具,如`tr`命令将非字母数字字符替换为回车符,`sort`命令对单词进行排序,`uniq -c`命令对相同的单词进行计数,`sort -nr`命令按照出现次数排序。 3. 简单的游戏 ```bash #!/bin/bash echo "Guess the number between 1 and 100" TARGET=$((RANDOM % 100 + 1)) TRIES=0 while true; do read GUESS if [ $GUESS -eq $TARGET ]; then echo "Congratulations! You guessed the number in $TRIES tries." exit 0 elif [ $GUESS -lt $TARGET ]; then echo "Too low" else echo "Too high" fi TRIES=$((TRIES + 1)) done ``` 这个脚本实现了一个简单的猜数字游戏。它使用`RANDOM`变量生成一个1到100之间的随机数,然后让玩家猜测这个数字。如果猜对了,则输出玩家猜了几次;如果猜错了,则提示猜的数字是太大还是太小,并让玩家继续猜。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值