Shell脚本进阶:掌握until循环和sort命令,效率翻倍!

until 循环


bash

代码解读

复制代码

#!/bin/bash i = 0 #根据需要修改 until [ $i -gt 10 ] do echo $i i=$[$i+1] done

 简述:这段脚本是一个 until 循环结构

1.功能

这段代码是一个 util 循环结构,用于在满足特定条件之前重复执 行循环体中的操作。在这里,它会不断地输出变量 ⅰ 的值,并对它进行 自增,直到 i 的值不满足循环条件为止。

2.循环条件分析 循环条件部分为[!$i-It 10],这里存在一些问题哦。在 bash 脚本中,用于条件测试的[](等同于 test 命令)有其特定的语法规则。

case 语句


bash

代码解读

复制代码

#!/bin/bash read -p"请您输入一个数值:"num case case $num in 1)echo您输入的数字是1 ;; 2)echo您输入的数字是2 ;; *)echo您输入的是其他数字 ;; esac

 这段 bash 脚本代码的主要从用户那里获取输入的一个数值 ,然后根据输入的值进行不 01:44 里。如果输入的值是 1,则输出"您输入的数字是 1"。如果输入的值是 2,则输出"您输入的数字是 2"。如果输入的值不是 1 或 2,则输出"您输入的是其他数字"。

sort 命令

语法: sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件][-k field1[,field2]] 参数说明:

常用参数:

-t 分隔符 :指定排序时使用的分隔符;

-k : 指定需要排序的列;

-n : 按照数值大小进行排序;

-r : 以相反的顺序排序;

-b : 忽略排序字段或关键字中开头的空格;

-c : 检查待排序内容是否已排序,如果未排序,则输出最开始乱序的列,否则,没有输出;

-o FILE : 将排序结果输出到指定文件,而不是标准输出;

-t 和 -k 参数

以 “:” 为分隔,选取第三列进行排序sort -t ":" -k 3 passwd-sort 也可以使用 “>” 将 sort 排序结果输出到指定文件

案例

文件中行分隔符为冒号":",要求先按第三列数字大小排序,再按照第一列数字大小排序,结果以降序输出


bash

代码解读

复制代码

$ echo -e "1:Python:15\n2:Python:5\n3:Ruby:25\n4:Python:15" | sort -t':' -k3 -k1 -nr 3:Ruby:25 4:Python:15 1:Python:15 2:Python:5

将文件 c.txt 中的内容按照第一列内容进行去重。


bash

代码解读

复制代码

ADD:USER="123"; MOD:USER="123"; ADD:USER="321"; LST:USER="123"; ADD:USER="321"; LST:USER="456"; MOD:USER="789";

执行命令:cat c.txt | sort -t':' -k1,1 -u


bash

代码解读

复制代码

cat c.txt |sort -t':' -k1,1 -u ADD:USER="123"; LST:USER="123"; MOD:USER="123";


bash

代码解读

复制代码

sort -n -t : -k 3 /etc/passwd


bash

代码解读

复制代码

sort -n -t : -k 3 /etc/passwd | head -n 3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值