linux把标准输出赋值给变量遇到的问题
问题起因:
例如执行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把标准输出赋值给变量遇到的问题相关推荐
- linux查找文件名赋值给变量,Linux平台从文件中查找字符赋值于变量
以telnet方式登录Linux主机,在默认目录下用命令创建一个包含DUT wanIP的文本文件. [root] echo wanIP=88.0.100.253 > ./wanIP.txt 在默 ...
- linux 脚本 整数 赋值,shell基础!!熟悉编程规范与变量
一.SHELL规范 SHELL简单介绍 Bash(/bin/bash)是目前大多数 Linux 版本采用的默认 Shell.Bash 的全称为 Bourne Again Shell,是最受欢迎的开源软 ...
- 花里胡哨,如何在Linux终端输出带有颜色的字体,将带颜色的字体赋值给变量...
背景 在日常操作Linux的情况下,总会遇到一些需求,比如说,把输出的内容用不同颜色标注出来,以达到醒目.提示的目的,那么如何在Linux终端输出带有颜色的字体呢? Linux终端输出字符颜色 ...
- linux中安shell怎么传入参数,【linux】linux 下 shell命令 执行结果赋值给变量【两种方式】...
方法1:[通用方法] 使用Tab键上面的反引号 例子如下: find命令 模糊查询在/apps/swapping目录下 查找 文件名中包含swapping并且以.jar结尾的文件 使用反引号 引住命令 ...
- linux超级基础系列——shell变量(本地变量和环境变量)
linux超级基础系列--shell变量(本地变量和环境变量) 2006-12-04 00:39 为使shell编程更有效,系统提供了一些shell变量.shell变量可以保存诸如路径名.文件名或者一 ...
- Linux下SHELL的PS1变量简介
Linux环境变量中PS1是很重要的环境变量: PS(Prompt Sign): 是指命令提示符,例如在Fedora 12的终端下:[liutao@liutao ~]$ ,在设定PS1环境变量时,我们 ...
- pwd赋值给变量 shell_Shell脚本中的变量详解
一.Shell变量 变量:是shell传递数据的一种方式,用来代表每个取值的符号名. 当shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中. 二.变量设置规则: 变量名 ...
- python匿名函数可以赋值给变量_python3的匿名函数 | 吴老二
匿名函数也是函数的一种,不过匿名函数和其他函数不一样,匿名函数只能是一种表达式,不能有return,返回值就是表达式的结果.匿名函数的关键词就是lambda,可以结合其他的函数一起使用,匿名函数的好处 ...
- c语言指针赋值指针变量赋值吗,C语言_指针变量的赋值与运算,很详细
指针变量的赋值 指针变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值.未经赋值的指针变量不能使用, 否则将造成系统混乱,甚至死机.指针变量的赋值只能赋予地址, 决不能赋予任何其它数据 ...
最新文章
- 养娃时做过的蠢事,程序员必看!
- metacoder-相关进化树图的绘制于实践
- atitit.android模拟器使用报告
- matplotlib安装错误依赖问题解决
- 腾讯新公开这张「图」,我看了眼,上面写满「智驾」二字
- 向服务器端提交数据的两种方式
- 母版页(Master Pages)--轉載
- 标星7000+,这个 Python 艺术二维码生成器厉害了!
- ByteBufferMessageSet分析
- Android下拉状态栏图标错了,小米手机怎么改状态栏的图标,并且把下拉的状态栏弄透明...
- 95-910-140-源码-FlinkSQL-FlinkSQL简介
- 2017《面向对象程序设计》课程作业一
- 安卓音量设置流程之MasterVolume
- 【网络】网络流:最大流最小割问题
- CodeReview技巧和规范
- 提升 Docker Desktop For macOS 磁盘使用率
- 微信小程序开发——调用免费天气api接口(高德、天气API)
- 查询rssi指令_无线接收信号强度(RSSI)那些事儿
- win10怎么关闭443端口(超详细)
- C++--名字空间的定义
热门文章
- 常量的定义与使用 1006 c#
- 格式小结 html 0926
- django-多对多关系
- linux-文件类型与查看文件型
- jquery-幻灯片效果-编辑中
- Composer自动加载(一)
- (原創) 如何将字符串前后的空白去除? (使用string.find_first_not_of, string.find_last_not_of) (C/C++)...
- [转]双线性插值(Bilinear interpolation)
- python 安装wheel .whl文件
- 压测|关于PHP7和5.6的压测对比