04

2025Mar

Success depends on effort, not just desire.

成功源于努力,而非渴望。

  • 嘿,朋友,在当下这段时间,我们生命当中有了彼此,感谢遇见!
  • 不知道为什么,我觉得你和别人很不一样
  • 希望你接下来的日子里,没有狗血情节,也没有崎岖波折,平平淡淡,顺顺当当,健健康康,喜乐安好!
  • 不要因为别人的一句话,而夺走你今天的快乐
  • 你的评论和鼓励像一碗粥,可能不够粘稠,却足以温暖我的心
  • 亲爱的朋友,我宁愿看到你伤心愤怒的样子,也不愿意看见你假装高兴
  • 说了这么多,就想告诉你,我很在乎你,不是因为我执着,而是因为你值得
  • 你可能想问我过的怎么样?我过得还可以,不好不坏,不惊不喜,一切只是还可以
  • 一年四季会有很多意外,但最迷人的还是遇见了你
  • 花开可要欣赏,然后就去远行。唯有不等花谢,才能记得花红
  • 我的酒量,大概就是三瓶啤酒或者和半杯白酒,亦或者你的微微一笑
  • 晚安这个词,好像变成了一种礼貌,睡不睡谁知道呢,反正话题是终止了……
  • 话说多了比较难堪,不如沉默来得可爱, 就这样吧,谢谢你呀 !

shell脚本for循环、while循环、until循环

1.AWK

在 Linux/UNIX 系统中,awk 是一个功能强大的编辑工具,逐行读取输入文本,默认以空格或tab键作为分隔符作为分隔,并按模式或者条件执行编辑命令。而awk比较倾向于将一行分成多个字段然后进行处理。AWK信息的读入也是逐行.
指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理,可以在无交互
的情况下实现相当复杂的文本操作,被广泛应用于 Shell 脚本,完成各种自动化配置任务。

工作原理:

前面提到 sed 命令常用于一整行的处理,而 awk 比较倾向于将一行分成多个“字段”然后再进行处理,且默认情况下字段的分隔符为空格或 tab 键。awk 执行结果可以通过 print 的功能将字段数据打印显示。

命令:awk     选项        模式      处理的动作

-F  指定分隔符
-v  自定义变量
-f  脚本

1.1print动作

 

 

 1.2常见的内置变量

  • FS :指定每行文本的字段分隔符,缺省为空格或制表符(tab)。与 “-F”作用相同 -v "FS=:"

  • OFS:输出时的分隔符

  • NF:当前处理的行的字段个数

  • NR:当前处理的行的行号(序数)

  • $0:当前处理的行的整行内容

  • $n:当前处理行的第n个字段(第n列)

  • FILENAME:被处理的文件名

  • RS:行分隔符。awk从文件上读取资料时,将根据RS的定义就把资料切割成许多条记录,而awk一次仅读入一条记录进行处理。预设值是\n

 

 

 

2.for循环

for是用于已知循环次数的脚本命令

格式: for (变量) in (次数);do (循环的事件);done(结束)

当使用c语言格式表示的时候:for (( 表达式1; 表达式2; 表达式3 )); do 命令; done

例子:

一加到十,连加

 

 十以内的偶数相加

 

 用for编写99乘法表

 2.while和until

while和until与for相比

for需要知道循环次数,while和until只知道停止条件,不知道次数,直到达到条件就会退出,注意需要退出命令,不然会进入死循环。

命令格式:

while
当命令判断为假时停止

until
当命令判断为真时停止

 

#!/bin/bash
数值
while [ 条件 ]    条件为真是do 假时done
do

done
echo

例子,用while求100以内数字相加

 

批量建立用户

 

 

双重循环及跳出循环

  • break跳出单个循环后面加数字2则代表跳出两层循环

  • continue终止某次循环中的命令,但是不会完全终止命令

  • exit直接退出脚本

 

 

 

 菜单

WORDS 变量被展开,生成一个词的列表。展开的词集合被打 在标准错误输出设备上,每个以一个数字做前缀。如果没有 `in WORDS'则假定使用`in "$@"'。PS3提示符会被显示并且从标准输入读入一行 如果该行由被显示的词对应的数字组成,则 NAME 变量被设定为相应的词。如果行为空,则 WORDS 变量和提示符被重新显示。如果读取了文件结束符,则命令完成。读入任何其他的值会导致 NAME 变量被设定为空。读入的行被存放在变量 REPLY 中。COMMANDS 命令在每次选择之后执行直到执行一个 break 命令。

命令格式:
select: select NAME [in 词语 ... ;] do 命令; done

  从列表中选取词并且执行命令。

例子:

点菜菜单

#!/bin/bash
sum=0
PS3="请输入(1-6):"
MENU="
宫保鸡丁
酸菜鱼
鱼香肉丝
佛跳墙
水煮肉片
点菜结束
"

select menu in $MENU
do
case $REPLY in
1)
echo $menu 价格是20
let sum+=20
;;
2)
echo $menu 价格是60
let sum+=60
;;


3)
echo $menu 价格是25
let sum+=25
;;

4)
echo $menu 价格是150
let sum+=150
;;

5)
echo $menu 价格是60
let sum+=60
;;

6)
echo "点菜结束"
break
;;

*)
echo "点菜错误,请重新选择"
;;

esac
done

echo "总价是$sum"

 

 

 

posted @   行走的泡泡  阅读(436)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示