问题起因:
例如执行ip命令,通过grep和awk组合命令得到如下结果
eth1
eth2
tap1
tap2
需求:现在我想把每一行作为一个变量来使用,可以做到把网卡down掉,例如ifconfig eth1 down
解决方法之一:
先把标准输出赋值个一个变量,然后用for in遍历这个变量

a=$(ip link show|grep |awk)
for i in $a
do
ifconfig $i down
done
echo $a
echo "$a"

这两条的输出结果不一样,区别在于是否有换行.这是为什么呢?
这里涉及到shell的IFS内部域分隔符也就是space,tab,newline

$ echo "$IFS" | od -b
0000000 040 011 012 012
0000004  要想理解这些还得知道一个概念
引用符、名称、意义说明表引用符 名称  意义说明
''  单引号 称全引用或弱引用,引用所有的字符;单引号中字符除单引号本身之外都解释为字面意义,单引号不具备引用变量的功能。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外。
""  双引号 称部分引用或强引用,引用除美元符号($)、反引号(`)和反斜线(\)之外的所有字符。即在双引号中保持美元符号($)、反引号(`)和反斜线(\)符号的特殊含义,如"$变量名"表示以变量值替换变量名。利用双引号引用变量能够防止字符串分割,保留变量中的空格。
``  反引符 shell把反引符中的内容解释为系统命令
\   反斜杠 转意符,屏蔽下一个字符的特殊意义,Linux常用的特殊字符有$、*、`、+、^、&、|、"、?

实例

a=$(ip link show)
echo $a
echo "$a"
echo $IFS|od -b
echo "$IFS"|od -b


所以说这块的知识很微妙,是个大坑,而我至今仍在坑中望天而叹。

还有一个问题就是ovs-vsctl show显示网桥,有的网桥名称会有双引号,这是什么原因????

经试验发现带有特殊字母的网桥名称会被双引号括起来,真是有趣啊

ovs-vsctl list-br
列出所有ovs网桥
a=$(ovs-vsctl list-br)

for i in $a
do
ovs-vsctl del-br $i
done


其实我最想知道的是分隔符是否参与了循环,如图所示,当给$a加上双引号在for中循环的时候分隔符确实参与了循环

linux把标准输出赋值给变量遇到的问题相关推荐

  1. linux查找文件名赋值给变量,Linux平台从文件中查找字符赋值于变量

    以telnet方式登录Linux主机,在默认目录下用命令创建一个包含DUT wanIP的文本文件. [root] echo wanIP=88.0.100.253 > ./wanIP.txt 在默 ...

  2. linux 脚本 整数 赋值,shell基础!!熟悉编程规范与变量

    一.SHELL规范 SHELL简单介绍 Bash(/bin/bash)是目前大多数 Linux 版本采用的默认 Shell.Bash 的全称为 Bourne Again Shell,是最受欢迎的开源软 ...

  3. 花里胡哨,如何在Linux终端输出带有颜色的字体,将带颜色的字体赋值给变量...

    背景 ​ 在日常操作Linux的情况下,总会遇到一些需求,比如说,把输出的内容用不同颜色标注出来,以达到醒目.提示的目的,那么如何在Linux终端输出带有颜色的字体呢? Linux终端输出字符颜色 ​ ...

  4. linux中安shell怎么传入参数,【linux】linux 下 shell命令 执行结果赋值给变量【两种方式】...

    方法1:[通用方法] 使用Tab键上面的反引号 例子如下: find命令 模糊查询在/apps/swapping目录下 查找 文件名中包含swapping并且以.jar结尾的文件 使用反引号 引住命令 ...

  5. linux超级基础系列——shell变量(本地变量和环境变量)

    linux超级基础系列--shell变量(本地变量和环境变量) 2006-12-04 00:39 为使shell编程更有效,系统提供了一些shell变量.shell变量可以保存诸如路径名.文件名或者一 ...

  6. Linux下SHELL的PS1变量简介

    Linux环境变量中PS1是很重要的环境变量: PS(Prompt Sign): 是指命令提示符,例如在Fedora 12的终端下:[liutao@liutao ~]$ ,在设定PS1环境变量时,我们 ...

  7. pwd赋值给变量 shell_Shell脚本中的变量详解

    一.Shell变量 变量:是shell传递数据的一种方式,用来代表每个取值的符号名. 当shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中. 二.变量设置规则: 变量名 ...

  8. python匿名函数可以赋值给变量_python3的匿名函数 | 吴老二

    匿名函数也是函数的一种,不过匿名函数和其他函数不一样,匿名函数只能是一种表达式,不能有return,返回值就是表达式的结果.匿名函数的关键词就是lambda,可以结合其他的函数一起使用,匿名函数的好处 ...

  9. c语言指针赋值指针变量赋值吗,C语言_指针变量的赋值与运算,很详细

    指针变量的赋值 指针变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值.未经赋值的指针变量不能使用, 否则将造成系统混乱,甚至死机.指针变量的赋值只能赋予地址, 决不能赋予任何其它数据 ...

最新文章

  1. 养娃时做过的蠢事,程序员必看!
  2. metacoder-相关进化树图的绘制于实践
  3. atitit.android模拟器使用报告
  4. matplotlib安装错误依赖问题解决
  5. 腾讯新公开这张「图」,我看了眼,上面写满「智驾」二字
  6. 向服务器端提交数据的两种方式
  7. 母版页(Master Pages)--轉載
  8. 标星7000+,这个 Python 艺术二维码生成器厉害了!
  9. ByteBufferMessageSet分析
  10. Android下拉状态栏图标错了,小米手机怎么改状态栏的图标,并且把下拉的状态栏弄透明...
  11. 95-910-140-源码-FlinkSQL-FlinkSQL简介
  12. 2017《面向对象程序设计》课程作业一
  13. 安卓音量设置流程之MasterVolume
  14. 【网络】网络流:最大流最小割问题
  15. CodeReview技巧和规范
  16. 提升 Docker Desktop For macOS 磁盘使用率
  17. 微信小程序开发——调用免费天气api接口(高德、天气API)
  18. 查询rssi指令_无线接收信号强度(RSSI)那些事儿
  19. win10怎么关闭443端口(超详细)
  20. C++--名字空间的定义

热门文章

  1. 常量的定义与使用 1006 c#
  2. 格式小结 html 0926
  3. django-多对多关系
  4. linux-文件类型与查看文件型
  5. jquery-幻灯片效果-编辑中
  6. Composer自动加载(一)
  7. (原創) 如何将字符串前后的空白去除? (使用string.find_first_not_of, string.find_last_not_of) (C/C++)...
  8. [转]双线性插值(Bilinear interpolation)
  9. python 安装wheel .whl文件
  10. 压测|关于PHP7和5.6的压测对比