码迷,mamicode.com
首页 > 其他好文 > 详细

2.7-egrep及bash中的变量

时间:2017-10-27 17:48:55      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:egrep及bash中的变量

egrep及扩展的正则表达式

    egrep=grep -E

    grep [OPTIONS] PATTERN [FILE...]

    扩展正则表达式的元字符:

        字符匹配:

            .:

            []:

            [^]:

        次数匹配:

            *:

            ?:0或1次

            +:1次或多次

            {m}:匹配m次

            {m,n}:至少m,至多n次

        锚定匹配:

            ^:

            $:

            \<,\b

            \>,\b

        分组:

            ()

            后向引用:\1,\2,\3,......

        或者:

            a|b

                C|cat:C或cat

练习:

    1.显示当前系统root,centos或user1用户的默认shell和UID

    2.找出/etc/rc.d/init.d/function文件(centos6)中某单词后面跟一个小括号的行

    3.使用echo输出绝对路径,使用egrep取出其基名

        基名:

        # basename /etc/sysconfig/network

        network

        目录名:

        # dirname /etc/sysconfig/network

        /etc/sysconfig

        进一步地:使用egrep取出路径的目录名,类似于dirname命令的结果

    4.找出ifconfig命令结果中1-255之间的数值

    5.找出ifconfig命令结果中的ip地址


fgrep:不支持正则表达式搜索


bash的基础特性(4)

    变量类型:

        一旦定义了变量,则数据存储格式,存储空间大小,参与运算种类也同时被限定

        字符型:

        数值型:

            整型和浮点型

        强类型:定义变量时必须指定类型,参与运算必须符合类型要求,调用未声明的变量会产生错误

        弱类型:定义变量时无须指定类型,默认均为字符型:参与运算会自动进行隐式类型转换,变量无须事先定义可直接调用

             bash

bash中的变量的种类:

    根据变量的生效范围等标准

        本地变量:生效范围为当前shell进程,对当前shell之外的其它shell进程,包括当前shell的子shell进程均无效

        环境变量:生效范围为当前shell进程及其子进程(declare -x variable_name=value)

        局部变量:生效范围为当前shell进程中某代码片段(通常指函数)

        位置变量:$1,$2,$3......来表示,用于让脚本在脚本代码中调用通过命令行传递给它的参数

        特殊变量:$?,$0,$*,$#,$@

    本地变量:

        变量赋值:variable=‘value‘

            可以使用引用:

                value:

                    (1) 可以是直接字串:name="username"

                    (2) 变量引用:name="$username"

                    (3) 命令引用:name=`COMMAND`,name=$(COMMAND)

        变量引用:${name},$name

            "":弱引用,其中的变量引用会被替换为变量值

            ‘‘:强引用,其中的变量引用不会被替换为变量值,而保持原字符串

        显示已定义的所有变量

            set

        销毁变量:

            unset name

    环境变量:

        变量声明,赋值:

            export name=VALUE

            declare -x name=VALUE

        变量引用:$name,${name}

        显示所有环境变量

            export

            env

            printenv

        销毁:

            unset name

        bash有许多内建的环境变量:PATH,SHELL,UID,HISTSIZE,HOME,PWD......


    变量命名法则:

        1.不能使程序中的保留字:例如if,for

        2.只能使用数字,字母及下划线,且不能以数字开头

        3.见名知义


    只读变量:变量不能被修改和撤销

        readonly name

        declare -r name

    

    位置变量:

        在脚本代码中调用通过命令行传递给脚本的参数:

            $1,$2....:对应调用第1,第2个参数

                shift[n]:换岗操作

            $0:命令本身

            $*:传递给脚本的所有参数(将所有参数当成一个字符串)

            $@:传递给脚本的所有参数(将所有参数当成独立的字符串)

            $#:传递给脚本的参数个数

2.7-egrep及bash中的变量

标签:egrep及bash中的变量

原文地址:http://sanyuan.blog.51cto.com/873226/1976848

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!