[Linux] shell脚本 - 实践

一、shell简介

脚本是一个文本文件,需要解释器(bash)

脚本后缀 test.sh 表示,也可以不需要

shell, python需要解释器:bash, tcsh sh, python解释执行
c, c++xx.c 编译链接---二进制可执行程序xx编译型
javaxx.java---javac编译----xx.class二进制不可执行---必须java解释器(虚拟机)java.exe---java.exe.xx.class编译解释

which bash

/usr/bin/bash

二、shell语法:变量,条件,循环,case,函数,脚本调用,c语言调用,awk,sed

1.变量

——shell中的变量的定义和值在解释器中,没有类型

——删除 unset

本地变量:用户自定义。

环境变量:

从父进程bash中继承。 添加环境变量:export

$PS1,$PS2:提示符

$0:shell脚本的名字

$#:传递给脚本参数的个数

$$:shell脚本的进程号

参数变量

$1, $2, ... 脚本程序的参数

运行 a.sh

1. bash a.sh

2. chmod u+x a.sh

2.条件

test条件类型:

if

3.循环

for

算术运算:

while

until

4.case

5.函数

——shell当中没有唯一主函数main()的要求

函数中定义的变量,在函数结束后,仍然能够调用,因为变量是在解释器中定义的。

函数调用:

传参:

6.脚本调用:

脚本调用:

1.普通调用

2. 以 . 命令执行,把脚本放在当前解释器中执行:

不同脚本变量调用

1.调用时 向b.sh传参:

2.做成环境变量(环境变量可以继承)

7. c语言调用shell脚本 exec

8.awk: 文本处理工具

格式化报文或从一个大的文本文件中抽取数据包

awk [-F field-separator] 'commmands' input-fils(s)

[-F field-separator] 分隔符,空格则省略

基本语法:awk 'pattern {action}' file

pattern: 匹配文本模式(正则表达式,数字或其他条件)。action: 当前模式匹配成功时执行的动作(打印,修改等)。file: 要处理的记录。

1.在命令行中awk。将小数转化为整数:

2.在脚本中awk。

应用举例:

9.sed

一个非交互性文本流编辑器,它编辑文件或标准输入到处的文本拷贝。就是sed

应用举例:

10.grep

11.sort

对文件内容进行排序。将许多不同域按不同的列顺序分类。

顺序排列:

逆序排列

12.uniq

用于重复行。通常与sort一起使用,先排序后去重。

posted @ 2025-09-19 08:34  wzzkaifa  阅读(25)  评论(0)    收藏  举报