shell脚本awk之变量传递

2023-11-07

一、在shell脚本中awk引用shell变量

1.双引号加单引号的形式

(1)awk引用系统变量
#!/bin/bash
awk 'BEGIN{print "'$HOSTNAME'"}'

执行结果:
[root@node1 pangbing_test]# sh test 
node1

加上字符串拼接

#!/bin/bash
awk 'BEGIN{print "hostname = ""'$HOSTNAME'"}'

执行结果:
[root@node1 pangbing_test]# sh test 
hostname = node1
(2)awk引用自定义变量
#!/bin/bash
ip="192.168.1.1"
awk 'BEGIN{print "ip_addr = ""'$ip'" }'


执行结果如下:
[root@node1 test]# sh test 
ip_addr = 192.168.1.1

2."-v" 形式传递

-v形式的变量引用可阅读性更强一些

(1)引用系统变量
#这里传递了多个变量给awk,每一个-v对应一个变量(也只能有一对一)
#!/bin/bash
awk -v host=$HOSTNAME -v username=$USER -v system_digit=$HOSTTYPE \
        'BEGIN{print host,username,system_digit}'

执行结果:
[root@node1 test]# sh test 
node1 root x86_64

上边结果显示不是很直观,可以加上字符串拼接的效果

#注意点有三点
(1) 代码中的\是让文件中的代码换行,对于显示结果没有任何影响
(2)awk通过-v引用变量 在awk中使用变量不用"" + '' 包裹了
(3)在做字符串拼接的时候"字符串""变量"之间加空格对显示效果没有影响
#!/bin/bash

awk -v host=$HOSTNAME -v username=$USER -v system_digit=$HOSTTYPE \
        'BEGIN{print "linux-host-namt=" host,\
        "linux-user-name=" username,\
        "linux-system-digit=" system_digit
}'    

执行结果如下:
[root@node1 test]# sh test 
linux-host-namt=node1 linux-user-name=root linux-system-digit=x86_64

想让结果换行,可以在加上\n

#!/bin/bash

awk -v host=$HOSTNAME -v username=$USER -v system_digit=$HOSTTYPE \
        'BEGIN{print "linux-host-namt = " host  "\n"\
        "linux-user-name = " username  "\n"\
        "linux-system-digit = "system_digit
}'

执行结果如下
[root@node1 test]# sh test 
linux-host-namt = node1
linux-user-name = root
linux-system-digit = x86_64

(2)引用自定义变量
#!/bin/bash
#先定义好shell变量 awk在应用
ip="192.168.1.1"
awk -v awkip=$ip 'BEGIN{print awkip}'

#直接在awk中定义变量 然后在引用
awk -v awkip="192.168.1.1" 'BEGIN{print awkip}'

执行结果都能显示:
[root@node5 ~]# sh test.sh 
192.168.1.1
192.168.1.1


字符串拼接后
#!/bin/bash
ip="192.168.1.1"
awk -v awkip=$ip 'BEGIN{print "间接引用awkip = " awkip}'

awk -v awkip="192.168.1.1" 'BEGIN{print "直接定义awkip = " awkip}'



执行结果:
[root@node5 ~]# sh test.sh 
间接引用awkip = 192.168.1.1
直接定义awkip = 192.168.1.1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell脚本awk之变量传递 的相关文章

  • shell脚本冒泡排序法——排列数组的从大到小和从小到大(有详细解释)

    文章目录 一 冒泡排序基础 1 2冒泡排序 1 2基本思想 1 3算法思路 1 4冒泡排序案例图解 二 实际操作 2 1升序 2 2升序 一 冒泡排序基础 1 2冒泡排序 类似于气泡上升的动作 会将数据在数组中从大到小或者从小到大不断地向前
  • shell脚本——shell函数详解

    shell脚本 shell函数详解 一 shell函数 1 shell函数的概念 2 shell函数的格式 1 函数的定义 2 调用函数的方法 3 函数返回值 4 函数传参 5 函数变量的作用范围 6 递归 函数调用自己本身的函数 1 阶乘
  • Shell-脚本介绍

    目录 一 Shell介绍 二 Shell脚本的规则 三 比较运算符 四 Case循环语 五 If语句 分支结构 六 For循环 七 While循环 一 Shell介绍 Shell与Python都是弱语言 定义变量规则 变量名 值 Shell
  • shell中的for循环示例

    1 利用for循环打印 示例代码 bin bash for i 0 i lt 3 i do for j 0 j lt 5 j 每行打印5个 打印三行 do echo n done echo done 2 利用for循环计算1到100的和 示
  • shell脚本进阶1——精读ansible+shell脚本

    文章目录 一 脚本规划思路 二 主控机shell脚本 2 1 脚本输出字体特效 2 2 生成菜单栏对话框 2 3 配置本地yum源仓库 2 4 配置受控机yum源 2 5 关闭防火墙和selinux 2 6 把docker安装包给受控机 2
  • shell脚本基础3——正则表达式

    文章目录 一 基本了解 二 基本正则表达式 2 1 字符匹配 2 2 位置锚定 2 3 匹配次数 2 4 分组 三 扩展正则表达式 3 1 字符匹配 3 2 位置锚定 3 3 匹配次数 3 4 分组 3 5 或者 一 基本了解 正则表达式分
  • Shell脚本基础

    1 变量 匹配规则 懒惰模式最短匹配 从头开始匹配 最短删除 root liudongyi var1 l love you but you love he root liudongyi var2 var1 ve root liudongyi
  • shell脚本awk之变量传递

    一 在shell脚本中awk引用shell变量 1 双引号加单引号的形式 1 awk引用系统变量 bin bash awk BEGIN print HOSTNAME 执行结果 root node1 pangbing test sh test
  • 企业级日常巡检脚本的编写

    1 系统信息 1 1 操作系统类型 查看操作系统类型命令为 uname 例 root host 134 uname Linux 定义变量 os type uname 1 2 操作系统版本号 查看操作系统版本号命令为 cat etc redh
  • Linux下的dd命令

    简介 dd命令是Linux下的一个重要的磁盘操作命令 它的主要作用是备份和复制磁盘 dd的语法是 dd if 输入文件的名称 of 输出文件的名称 参数 值 if 输入文件的名称 指定输入文件的名称 可以是文件 设备 目录等 of 输出文件
  • shell脚本之awk命令——分隔符介绍

    文章目录 awk入门 awk F awk命令之 分割符 awk命令之 分割符 awk入门 关于awk命令的基础用法 请参考Linux awk命令 awk F awk F F相当于内置变量FS 指定分割字符 fs是一个字符串或者是一个正则表达
  • shell脚本系列:3、shell命令

    shell脚本系列 3 shell命令 文章目录 shell脚本系列 3 shell命令 1 保留字 2 简单的命令 3 管道 4 命令列表 5 复合循环指令 5 1 循环结构 5 2 条件结构 5 3 分组命令 6 协程 7 GUN Pa
  • [原创]脚本小技巧:awk变量传递到shell变量

    简介 常用网名 猪头三 出生日期 1981 XX XX 个人网站 https www x86asm org QQ交流 643439947 编程生涯 2001年 至今 共20年 职业生涯 18年 开发语言 C C 80x86ASM PHP P
  • shell脚本判断变量是否包含某个字符串的几种方法

    方法一 利用grep查找 strA long string strB string result echo strA grep strB if result then echo 包含 else echo 不包含 fi 先打印长字符串 然后在
  • 终端上使用脚本隔一定时间进行重复reboot和ping

    bin sh 设置 so的路径 export LD LIBRARY PATH usrdata LD LIBRARY PATH export LD LIBRARY PATH LD LIBRARY PATH usrdata 设置 usrdata
  • Shell脚本函数应用

    记录 429 场景 Shell脚本函数应用 定义函数 函数调用 函数传参 版本 CentOS Linux release 7 9 2009 1 普通函数 示例普通函数是没有入参和返回值 1 1脚本 脚本名称 b2023051701 sh 脚
  • shell脚本之if多分支和case分支语句

    文章目录 一 多分支if语句 二 case分支语句 三 实操 3 1 系统控制服务脚本 控制服务的启动 重启 停止 3 2 根据学生的成绩 判断优秀 良好 和不及格几个等级 3 3 删除家目录 3 4 剪刀石头布 电脑与人 3 5 case
  • Linux三剑客之awk命令详解

    目录 一 awk常见用法 二 案例 2 1 awk中 F的使用 2 2 awk中几个特殊的内部变量 用法 三 实战案例 一 awk常见用法 通常情况下awk所使用的命令格式如下 其中 单引号家伙是那个大括号 用于设置对于数据进行的处理动作
  • Shell脚本编写教程

    Shell脚本编写教程
  • Shell脚本编写教程【七】——Shell test命令

    Shell脚本编写教程 七 Shell test命令 目录 https blog csdn net shn111 article details 131590488 参考教程 https www runoob com linux linux

随机推荐

  • 生成式 AI 行业解决方案指南与部署实践

    生成式 AI 和 Stable diffusion 生成式 AI Generative AI 可以生成自然语言 图像 视频和音乐等数字化内容 目前热点应用总体上可以分为基于 Stable Diffusion 的图片内容生成类任务以及基于大语
  • 《数据库原理及应用》MySQL版知识点总结

    1 数据库系统的基本原理 1 1 数据库系统概述 1 1 1 基本概念 1 1 2 数据管理技术的发展阶段 1 2 数据模型 1 2 1 数据抽象的过程 1 2 2 关系模型 1 3 数据库体系结构 1 3 1 数据库系统的三级结构 1 3
  • C语言 malloc(0)的问题

    转载地址 http blog csdn net bigheaven article details 7286862 感谢作者 如下 cpp view plain copy include
  • quasar使用vxe-table插件

    问题描述 提示 这里描述具体问题 在前端开发时经常会用到表格显示数据 但是在quasar的q table中没有能实现我们目的属性 这时就需要更强大的插件来完成 这个就是vxe table插件 实现更多的表格功能 原因分析 提示 这里填写问题
  • 作者主题模型(Author-Topic Model)的Python Gensim实现

    Gensim中的主题模型包括三种 分别是LDA Latent Dirichlet Allocation 主题模型 加入了作者因素的作者主题模型 Author Topic Model ATM 和加入了时间因素的动态主题模型 Dynamic T
  • html怎么本地存储数据库中,html5本地存储之localstorage 、本地数据库、session

    点评 这篇文章主要介绍了html5本地存储的localstorage 本地数据库 sessionStorage简单使用示例 需要的朋友可以参考下 html5的一个非常cool的功能 就是web storage 类似于之前的cookie 不过
  • algorithm头文件常用函数

    algorithm意为 算法 是C 的标准模版库 STL 中最重要的头文件之一 提供了大量基于迭代器的非成员模板函数 类 别 C 标准库 头文件 include
  • uniapp error页面配置

    uniapp暂不支持自定义webview所以我们用自带的error 首先在根目录新建生成此文件hybrid html error html 在manifest json 源码试图 中配置error 必须在app plus下 这里要注意路径问
  • 伯努利分布方差_【数据挖掘建模】之常见概率分布总结

    1 伯努利分布 伯努利分布又称为0 1分布 如果随机变量X只取0和1两个值 并且相应的概率为 P x 1 p P x 0 1 p 且0 令q 1 p X服从参数为p的伯努利分布 则对应的期望和方差如下 常见的抛硬币实验就是n重伯努利试验 其
  • selenium grid4入门-standalone模式

    参考官网 Getting started with Selenium Grid Selenium selenium grid4有三种模式 Standalone模式 顾名思义 独立的 就是将主控和节点都在同一台机器上 standalone模式
  • tf好朋友之matplotlib的使用——坐标能见度设置

    tf好朋友之matplotlib的使用 坐标能见度设置 坐标能见度设置常用函数 set bbox方法 应用示例 坐标太多挡住其它标记 挡住彼此怎么办 那必然是 给他们一个透明度啊 坐标能见度设置常用函数 set bbox方法 对坐标进行透明
  • 解决Nacos启动时遇到的一些错误

    当我们双击nacos的bin目录下的statup cmd启动Nacos时 发现报以下错误 dba load error load jdbc properties error 报错的原因是 数据库找不到 没有导入 解决方法步骤 在安装的nac
  • qt 内存泄漏处理办法

    windows 版本 windows msvc版本 可以使用vld检测 可以得到内存泄漏点的调用堆栈 如果可以的话 还可以得到其所在文件及行号 可以得到泄露内存的完整数据 可以设置内存泄露报告的级别 缺点 1 只针对 Visual C 即m
  • 【ag-grid-vue】列定义(Updating Column Definitions)

    列定义一节解释了如何配置列 可以在初始设置列之后更改列的配置 本节介绍如何更新列定义 添加和删除列 可以通过更新提供给网格的列定义列表来添加和删除列 当设置新列时 网格将与当前列进行比较 并计算出哪些列是旧的 要删除 哪些列是新的 创建的新
  • Python爬虫学习基础——5分钟学会爬取B站视频日播放量排行

    Python爬虫学习基础 5分钟学会爬取B站视频日播放量排行 基础包含 requests pyquery 进入正题 基础包含 这也是我当初第一次学习爬虫时做的练习 感觉给初学者练笔挺不错的 运用的知识也不是太多 只运用了requests库以
  • 数据结构练习题-1

    1 简述下列概念 数据 数据元素 数据项 数据对象 数据结构 逻辑结构 存储结构 抽象数据类型 答案 数据 是客观事物的符号表示 指所有能输入到计算机中并被计算机程序处理的符号的总称 如数学计算中用到的整数和实数 文本编辑所用到的字符串 多
  • CH4-串、数组和广义表

    文章目录 4 1 串的定义 4 2 案例引入 4 3 串的类型定义 存储结构及运算 4 3 1 顺序串 4 3 2 链串 4 3 3模式匹配算法 BF算法 KMP算法 4 4 数组 4 4 1抽象数据类型定义 4 4 2数组的顺序存储 4
  • 最新区块链开发教程汇总

    区块链的重要性已经毋庸置疑 但对大多数跃跃欲试的开发者而言 去中心化思想 非对称加密 共识算法等技术点的理解和运用 都是入门区块链开发的挑战 合适的区块链开发教程可以极大地缩短区块链开发的学习周期 因此 本文汇总整理了以太坊 比特币 EOS
  • 如何用C语言实现多态?

    多态 Polymorphism 是指面向对象程序运行时 相同的消息可能会送给多个不同的类之对象 系统依据对象所属类 引发对应类的方法 而有不同的行为 简单来说 所谓多态意指相同的消息给予不同的对象会引发不同的动作 在C语言中 可以通过结构体
  • shell脚本awk之变量传递

    一 在shell脚本中awk引用shell变量 1 双引号加单引号的形式 1 awk引用系统变量 bin bash awk BEGIN print HOSTNAME 执行结果 root node1 pangbing test sh test