
linux把标准输出赋值给变量遇到的问题
经试验发现带有特殊字母的网桥名称会被双引号括起来,真是有趣啊
发布日期:2021-05-07 18:06:09
浏览次数:26
分类:精选文章
本文共 1030 字,大约阅读时间需要 3 分钟。
问题起因:
例如执行ip命令,通过grep和awk组合命令得到如下结果 eth1 eth2 tap1 tap2 需求:现在我想把每一行作为一个变量来使用,可以做到把网卡down掉,例如ifconfig eth1 down 解决方法之一: 先把标准输出赋值个一个变量,然后用for in遍历这个变量a=$(ip link show|grep |awk)for i in $adoifconfig $i downdone
echo $aecho "$a"
这两条的输出结果不一样,区别在于是否有换行.这是为什么呢?
这里涉及到shell的IFS内部域分隔符也就是space,tab,newline$ echo "$IFS" | od -b 0000000 040 011 012 012 0000004 要想理解这些还得知道一个概念引用符、名称、意义说明表引用符 名称 意义说明'' 单引号 称全引用或弱引用,引用所有的字符;单引号中字符除单引号本身之外都解释为字面意义,单引号不具备引用变量的功能。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外。"" 双引号 称部分引用或强引用,引用除美元符号($)、反引号(`)和反斜线(\)之外的所有字符。即在双引号中保持美元符号($)、反引号(`)和反斜线(\)符号的特殊含义,如"$变量名"表示以变量值替换变量名。利用双引号引用变量能够防止字符串分割,保留变量中的空格。`` 反引符 shell把反引符中的内容解释为系统命令\ 反斜杠 转意符,屏蔽下一个字符的特殊意义,Linux常用的特殊字符有$、*、`、+、^、&、|、"、?
实例
a=$(ip link show)echo $aecho "$a"echo $IFS|od -becho "$IFS"|od -b
还有一个问题就是ovs-vsctl show显示网桥,有的网桥名称会有双引号,这是什么原因????
ovs-vsctl list-br
列出所有ovs网桥 a=$(ovs-vsctl list-br)for i in $adoovs-vsctl del-br $idone
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月17日 14时22分52秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
数据库三个级别封锁协议
2021-05-08
ACM/NCPC2016 C Card Hand Sorting(upc 3028)
2021-05-08
ubuntu学习笔记-常用文件、命令以及作用(hosts、vim、ssh)
2021-05-08
SLAM学习笔记-求解视觉SLAM问题
2021-05-08
普歌-允异团队-HashMap面试题
2021-05-08
还在一个一个手动安装虚拟机吗?Cobbler自动部署装机一键最小化安装打把游戏就好了
2021-05-08
程序员应该知道的97件事
2021-05-08
create-react-app路由的实现原理
2021-05-08
Linux环境变量配置错误导致命令不能使用(杂谈)
2021-05-08
openstack安装(九)网络服务的安装--控制节点
2021-05-08
shell编程(六)语言编码规范之(变量)
2021-05-08
vimscript学习笔记(二)预备知识
2021-05-08
Android数据库
2021-05-08
HTML基础,块级元素/行内元素/行内块元素辨析【2分钟掌握】
2021-05-08
STM8 GPIO模式
2021-05-08
23种设计模式一:单例模式
2021-05-08
Qt中的析构函数
2021-05-08
C语言实现dijkstra(adjacence matrix)
2021-05-08
三层框架+sql server数据库 实战教学-徐新帅-专题视频课程
2021-05-08