shell 脚本编程

shell 脚本编程

1变量
(a)简单操作

chmod u+x xxx.xx  //可以通过编译方式执行。

在这里插入图片描述

这里是引用
注意:1、等号左右没有空格则是判断 ; 2. echo ‘a=$a’ 取不出a的值。

(b) 参数变量

这里是引用
两个$$ :取解释器的PID号; (2)$# 统计环境参数的个数

//命令行输入两个环境参数 :   bash my2.sh char name  

在这里插入图片描述

(c)路径

这里是引用
设置一个环境变量并打印。

在这里插入图片描述

2. 条件 if case

3. 循环
3.1 for 循环
在这里插入图片描述

expr 算数运算累加和计算关键字

在这里插入图片描述
3.2while 循环
在这里插入图片描述
$( ) : 不知道怎么用
-eq //equals等于
-ne //no equals不等于
-gt //greater than 大于
-lt //less than小于
-ge //greater equals大于等于
-le //less equals小于等于

在这里插入图片描述
3.3 case 语句的 格式
在这里插入图片描述
[ ] 中括号可以指定每个字符的形式, | 竖杠表示逻辑或 , *表示不指定的任何输入的字符

3.4 until 循环的格式 (让我整丢了)
4. 函数
在这里插入图片描述
$? 代表最后一次执行的命令返回的结束代码(0表示正常,其他表示异常)

在这里插入图片描述
在这里插入图片描述
echo function.sh argc =$# 获取环境参数个数。注意此符号在函数中和函数外所统计的参数是函数内的参数一个是函数外的参数。

在这里插入图片描述

  1. 脚本调用脚本 ,传参
    我们想执行b.sh 脚本去运行a脚本,我们想在a中调用b 的变量,由如下代码打不出mystr的值。

a.sh代码:

这里是引用
b.sh代码:
这里是引用
结果
在这里插入图片描述
我们可以用几种方法解决这个问题:
第一种:用 . ./ a.sh $ 或者 source 关键字
b.sh代码:
在这里插入图片描述

第二种:新增环境变量的方式(export关键字),在子进程中可以调用这个变量。
在这里插入图片描述6. c语言调用脚本
6.C程序调用传参
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

awk 使用

如果格式化报文或从一个大的文本文件中抽取数据包,那么awk可以完成这些任务。

例子1:取浮点数的小数部分、
a.txt 内容都是浮点数:
在这里插入图片描述
$1 代表域1,$2就是域2 注意 .和 ’ 要分开。

也可以把取到的内容放到制定文件中。
awk -F. ‘{print $1}’ a.txt n.txt

例子2 选择打印etc/passwd 内容
在这里插入图片描述
在这里插入图片描述
例子3 过滤 之后得到想要的内容
在这里插入图片描述

sed 用法

插入操作

sed ‘2i\5.5’ a.txt >b.txt

在这里插入图片描述
删除操作
在这里插入图片描述
替换操作

sed ‘s/root/aaa/’ passwd >b.txt
sed 's/root/aaa/'g passwd >b.txt //全文替换

sort 排序操作
在这里插入图片描述
-u :去重

编译型 编译链接 生产可执行程序 执行效率高

解释型 需要解释器 通过解释器解释执行代码 python a.py bash my.sh
执行效率不高
java 编译型 xx.java->javac xx.class字节码 被解释器识别
java 虚拟机来解释执行JVM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值