liunx运维实战-----3 shell变量的核心基础知识和实践

  • 1定义环境变量并赋值的方法

    1 export 变量名=值

    2 source /etc/profile

    3 echo $变量名

    4 env | grep 变量名

  • 2 环境变量也叫全局变量

  • 3特殊情况:sed和grep没有问题

    因为 awk取用shell变量时 和之前的定义是相反的

    在awk取用shell变量时 我们更好的是先用echo加符号输出变量 然后通过管道给awk

参考代码

root@localhost data# echo $ETT

oldgirl

root@localhost data# awk 'BEGIN {print $ETT}' 输出为空格

root@localhost data# awk 'BEGIN {print '$ETT'}' 输出为空格

root@localhost data# awk 'BEGIN {print "$ETT"}' 输出为本身
KaTeX parse error: Expected 'EOF', got '#' at position 26: ...localhost data]#̲ awk 'BEGIN {pr...ETT'"}' 输出命令的值

oldgirl

root@localhost data# awk 'BEGIN {print '"$ETT"'}' 输出为空格

  • 4 关于自定义普通字符串变量的建议

    不带引号: 内容纯数字 简单的连续字符(不带空格)

    双引号(弱引用):没有特殊情况,特别是带空格的

    单引号(强引用):当变量里的内容需要原样输出时

  • 5变量名及变量内容小结

    1变量名只能为数字 字母 下划线,只能以字母或下划线开头

    2变量名的定义要有一定的规范 并且要见名知意

  • 6 shell 定义变量时使用"=" 的知识

    "a=1"里等号是赋值的意思 比较变量是否相等 也可以用 "="或 "==""

  • 7 补充:Awk 的两个特殊模式

    BEGIN 和 END,BEGIN 被放置在没有读取任何数据之前,而 END 被放置在所有的数据读取完成以后执行

    体现如下:

    BEGIN{}: 读入第一行文本之前执行的语句,一般用来初始化操作

    {}: 逐行处理

    END{}: 处理完最后以行文本后执行,一般用来处理输出结果

    root@localhost data# awk -F : 'BEGIN{i=0}{if($3<1000){i++}}END{print i}' /etc/passwd

    19

相关推荐
开开心心就好几秒前
文件关联被破坏怎么修?免费工具一键修复
java·服务器·开发语言·pdf·ocr·启发式算法·宽度优先
小白鸽i1 分钟前
【linux】麒麟桌面版安装人大金仓V8
linux·运维
Ruiery6 分钟前
Linux 6.6内核内存管理深度解析(三):页表与缺页处理 — 虚拟地址怎么按需映射到物理页
linux·运维·服务器
研发小能6 分钟前
DevOps 流水线怎么选?自研、开源拼装还是企业级平台
运维·开源·devops·嘉为蓝鲸
ouynagda7 分钟前
iMX6ull Linux 嵌入式驱动开发笔记(LCD / ADXL345 / SPI 子系统)
linux·arm开发·驱动开发·笔记·嵌入式硬件
小诗懂技术8 分钟前
linux驱动中断,相关中断的方式与适用场景
linux·arm开发·驱动开发·算法
xiaoqiMikko12 分钟前
Linux 实战(九·完):重定向、sudo、通配符的坑 + 报错速查表 —— 三台真机实测
linux·centos
迪康Defender14 分钟前
终端安全行为分析:审计日志如何转化为业务报表?落地实践与避坑指南
运维·经验分享·安全·信息可视化·自动化·安全威胁分析·运维开发
H.莓飛14 分钟前
【C++】模板初阶
linux·开发语言·c++·visual studio
十五年专注C++开发16 分钟前
基于Asio2实现http服务器的实践总结(二)
服务器·c++·http·asio2