精华内容
下载资源
问答
  • 问题起因: 例如执行ip命令,通过grep和awk组合命令得到如下结果 eth1 eth2 tap1 tap2 ...先标准输出赋值一个变量,然后用for in遍历这个变量a=$(ip link show|grep |awk) for i in $a do if

    问题起因:
    例如执行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中循环的时候分隔符确实参与了循环
    这里写图片描述

    展开全文
  • 例如:很多时候我们就需要获取当前目录的绝对路径,pwd这个命令大家在熟悉不过,可是要个命令的输出值赋给变量就不知道何从下手了。莫慌,办法还是有的,我们可以个命令的输出值赋给一个叫pwd的变量(当然,...

    很多小伙伴在写shell脚本的时候需要把命令输出的值赋给一些变量,使得脚本在运行过程中能够顺利使用这些变量。例如:很多时候我们就需要获取当前目录的绝对路径,pwd这个命令大家在熟悉不过,可是要把这个命令的输出值赋给变量就不知道何从下手了。莫慌,办法还是有的,我们可以把这个命令的输出值赋给一个叫pwd的变量(当然,你也可以随意命名一个变量名称)。具体操作是这样的:pwd=`pwd`,需要注意的是这里的引号并非通常我们使用的单引号,而是左上角ESC下面那个按键,也就是数字键1前面的那个。

    大家可以来看一下这个例子,如果想使用下面的脚本直接运行的话请删除前面的行号数字。

    1 #!/bin/bash

    2 whoami=`whoami`

    3 pwd=`pwd`

    4 today=`date`

    5 last=`last -10`

    6 echo  "Your name is $whoami"

    7 echo  "The current directory is $pwd"

    8 echo  "Today is $today"

    9 echo  "`last -10`"

    10 echo  "The last login $last"

    在第9行代码中,我们直接输出最近10次登陆的详情,这属于是直接使用,在第10行代码中我们使用了变量,实际运行结果与第9行一致。

    当然,另外一种方式就是把上面的`换成成对的小括号,半角状态下输入,需要在小括号前加“$”。

    输出结果如下:

    命令参数也是完全可以带上的,我们来看一下:

    1 #!/bin/bash

    2 LANGUAGE=$(echo -e "$LANG \n")

    3 echo $LANGUAGE

    4 list=`ls -al`

    5 echo -e "$list"

    运行结果如下,完全能够达到预期效果。

    其他方式希望小伙伴们在评论区展开讨论,大家一起进步!感觉动手去试试吧!

    展开全文
  • linux之常用命令

    2020-02-05 21:51:41
    a.read用于读取输入,并赋值给变量; echo用于简单输入变量 b.>file将输出重定向到另一个文件; >>表示追加 c.<file 输入重定向,文件内容读到变量中(1.txt中文件内容(只能读一行)读到变量x中...

    1.shell输入输出

    a.read用于读取输入,并赋值给变量; echo用于简单输入变量

    b.>file将输出重定向到另一个文件; >>表示追加

    c.<file 输入重定向,把文件的内容读到变量中(把1.txt中的文件内容(只能读一行)读到变量x中)

    2行文件内容读到变量中

    2.管道

    echo abc | read x;echo $x 结果并不是abc,必须使用while.是因为带管道的命令|是新起的子进程,子进程销毁后,变量也就消失了.而read x 这是个shell进程,所以不会销毁.

    3.读取文件里的行数

    4.标准输入0 标准输出1 标准错误2 find /etc -name .bashrc >2.txt   2>&1

    5.三剑客之grep 与正则表达式

    a.echo 'abcABc' | grep -i 'a' (-i不区分大小写) (-o按行输出匹配内容) (-v不显示匹配的行)(-E使用扩展正则表达式)(-r递归搜索)

    b.[]匹配括号中任意字符;[^269A-Z]匹配除了2,6,9和所有大写字母外的所有字符

    展开全文
  • 1、read命令 ...1.1、read读取键盘数据,输入内容回车前数据赋值给一个变量: cb@Standalone14:~$ read name hello cb i am ubuntu. #回车 cb@Standalone14:~$ echo $name hello cb i am ubuntu.

    1、read命令

    read命令可以通过键盘或者一个文件的某一行文本读入信息,并赋值给一个变量。

    1.1、read读取键盘数据,把输入的内容回车前的数据赋值给一个变量:

    cb@Standalone14:~$ read name
    hello cb i am ubuntu.    #回车
    cb@Standalone14:~$ echo $name
    hello cb i am ubuntu.    #显示变量的值
    1.2、实例shell脚本,把代码保存为.sh文件,更改可执行权限,运行看看效果:

    #!/bin/sh
    # var test
    echo -n "first name :\c"
    read name
    echo -n "middle name :\c"
    read middle
    echo -n "last name :\c"
    read surname
    
    echo "first name is " $name
    echo "middle name is" $middle
    echo "last name is" $surname

    2、cat命令

    cat命令用来显示文件内容,可以显示1个或多个文件。

        cat命令用来显示文件内容,可以显示1个或多个文件。
        cat myfile    #显示myfile的文件内容,会一次显示全部内容,对大文件时要避免;
        cat myfile1 myfile2 > myfile3    #把myfile1和myfile2的内容重定向到myfile3中;
        cat myfile | more #把myfile的内容传递给 more命令,用more命令来实现分页显示;


    3、管道

    管道,可以实现将一个命令的输出,传递给另一个命令,作为其输入。管道通过|来表示。
        一般形式:    命令1 | 命令2
        ls -l | grep cb    # ls命令的输出通过管道传输给grep命令。
        在一行命令中,可以使用多个管道,管道将从左到右执行。



    展开全文
  • arp 查看和处理ARP缓存,ARP是名字解析意思,负责把一个IP解析成一个物理性MAC地址。arp -a将显示出全部信息 start 程序名或命令 /max 或/min 新开一个新窗口并最大化(最小化)运行某程序或命令 mem 查看cpu...
  • 命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。 echo The date is `date` The date is Thu Aug 13 15:10:58 CST 2015 单引号、双引号用于带有空格的字符串赋值给变量 str=...
  • 1、echo命令可以显示文本行或变量,或者字符串输入到文件 echo [option] string -e 解析转义字符(转义符(\c(回车不换行),\f(静止),\t(跳格),\n回车换行)) -n ...并将其赋值给一个变量 read varible1 vari...
  • Linux学习之数值运算与运算符

    千次阅读 2016-06-04 09:45:28
    1、declare命令 也可以通过export命令将一个变量声明为环境变量 ...echo $cc将输出33 ...$()是把命令的执行结果赋值给变量dd 4、数值运算方法3 推荐使用这种方式,比较直观 echo $ff将输出33 e
  • shell实例案例:输入网卡名称,输出对应ip问题输入不合理网卡名如何获取如何获取需要网卡ip分析利用if判断输入是否正确grep和awk获取所有网卡名并保存至networkname文件中sed 使用变量进行替换时,要用双引号awk...
  • Linux笔记 shell脚本

    2017-07-10 17:00:41
    关于快捷键:撤销操作 在命令模式下按u 删除按x1 注意空格不要随便加 创建局部变量 不能加空格 下面写法将会报错 下面这也是空格问题 ...把命令输出给变量进行赋值 波浪线下反引号·· 反引号和括号
  • 通过我们已经学过知识,你可以编写一个最简单程序输出一个也许是程序世界中最有名词语: echo "Hello World!"; ?> First PHP page // Single line C++ style comment /* printing the message */ ...
  • linux下shell编程

    千次阅读 2020-08-23 16:10:31
    " //echo命令把其参数传递标准输出,它在最后会自动加上一个换行符,每个代码段完后,后面没有分号 变量和运算符: #! /bin/bash log="monday" //shell中使用变量不需要事先声明,=两边不能有空格(赋值) echo $log ...
  • -i会自动aa,bb也声明为int型 shell是弱类型语言,即使前两个没有声明declare -a 也会默认为数组 第一个(movie)代表调用第一个数组,...先系统的命令赋值给gg,,再输出gg 对于数值运算,推荐使用方法3双小括
  • 在网上看到一个很巧妙方法,可以删除文件首行、尾行和首尾两行,原理和操作记录如下 利用awk按行遍历,依次执行body...1 跳过此输出),再首行赋值给line变量, 然后在第二轮输出了line(此时为第一行内容),...
  • RED HAT LINUX 6大全

    热门讨论 2011-10-21 18:46:06
    13.4.2 使用mount加载一个导出文 件系统 238 13.4.3 卸载文件系统 238 13.4.4 配置/etc/fstab文件以自动加载 文件系统 239 13.5 完成样本配置文件 240 13.6 小结 241 第14章 Samba 242 14.1 安装Samba 242 14.2 ...
  • 命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。  如下,shell会执行反引号中的date命令,结果插入到echo命令显示的内容中。  单引号、双引号用于用户带有空格的字符串赋值给变量事的...
  • 后将介绍函数指针,它使程序员能够通过函数参数来命令函数使用另一个函数。 第8章:函数探幽 本章将探索C++中函数新增特性。读者将学习内联函数,它可以提高程序执行速度,但会增加程序长 度;还将使用...
  • 后将介绍函数指针,它使程序员能够通过函数参数来命令函数使用另一个函数。 第8章:函数探幽 本章将探索C++中函数新增特性。读者将学习内联函数,它可以提高程序执行速度,但会增加程序长 度;还将使用...
  • 后将介绍函数指针,它使程序员能够通过函数参数来命令函数使用另一个函数。 第8章:函数探幽 本章将探索C++中函数新增特性。读者将学习内联函数,它可以提高程序执行速度,但会增加程序长 度;还将使用...
  • 深入学习shell脚本艺术

    热门讨论 2011-02-22 04:01:01
    传递一个间接引用awk 9-24. 产生随机数 9-25. 从一副扑克牌中取出一张随机牌 9-26. 两个指定值之间随机数 9-27. 使用随机数来摇一个骰子 9-28. 重新分配随机数种子 9-29. 使用awk产生伪随机数 9-30. C风格...
  • 最近基础部分内容重新创建了一个名为“Python-Core-50-Courses”项目,用更为简单通俗方式重写了这部分内容并附带了视频讲解,初学者可以关注下这个新项目。国内用户如果访问GitHub比较慢话,也可以关注我...
  • 、建立自己平台类型 (1)解压文件 #tar jxvf u-boot-1.3.1.tar.bz2 (2)进入 U-Boot源码目录 #cd u-boot-1.3.1 (3)创建自己开发板: #cd board #cp smdk2410 fs2410 –a #cd fs2410 #mv smdk2410...

空空如也

空空如也

1 2
收藏数 23
精华内容 9
关键字:

linux把一个命令的输出赋值给变量

linux 订阅