`

《Linux Shell》之七:变量的高级用法

阅读更多

9.1 内部变量

BASH:记录bash shell的路径

BASH_VERSION:bash shell版本信息

GROUPS:记录当前用户所属的群组

HOSTNAME:主机名

REPLY:默认read后面要接一个变量,如果没有就将读取的值放入REPLY中,在select中将选择的数字赋给REPLy

SECONDS:记录脚本从开始执行到结束所消耗的时间

#!/bin/bash

count=1
MAX=5

while [ "$SECONDS" -le "$MAX" ]
do
    echo "This is the $count time to sleep"
    let count=$count+1
    sleep 2
done

echo "the running time of this script is $SECONDS"

 TMOUT:用于设置shell的过期时间,当TMOUT不为0时候,shell在TMOUT秒后自动注销。TMOUT放在脚本中,可以规定脚本的执行时间。

 

9.2 字符串处理:

* 字符串长度:

${#string} 或者  expr length "$string"

* 子串的索引:

expr index "$string" "$substr",从1开始,如果找不到,返回0

* 从开头匹配:

expr match $string $substr  其中substr可以是正则表达式,返回匹配的子串长度,如果没有返回0

* 抽取子串:

#{string:position}

#{string:position:length}

注意:上面的position从0开始

expr substr $string $position $length

注意:上面的position是从1开始的,我勒个擦,并且length必须指定

* 正则式抽取子串:

expr match $string '\($substr\)'  --> 抽取开头的子串

expr match $string '.*($substr\)'  -->抽取最后的子串

* 删除子串

${string#substr}  开头删最短

${string##substr} 开头删最长

${string%substr} 结尾删最短

${string%%substr} 结尾删最长

******* 替换子串 *******

可以在替换字符串中任意满足条件的子串

${string/substring/replacement}  仅仅替换第一次匹配

${string//substring/replacement}  替换所有的匹配

注:substring不是正则式,*跟shell中的*类似

 

9.3 有类型变量

declare [option] var

选项名 意义
-r 变量设置为只读
-i 变量为整型
-a 变量为数组
-f 显示此脚本前定义过的所有函数名及内容
-F 仅显示此脚本前定义的函数名
-x 声明为环境变量

declare -x var=value

 

9.4 间接变量引用

variable1=variable2

variable2=value

类似于spring配置文件中的占位符,现在variable1的值肯定是variable2字符串,那么怎样获得variable的间接引用值呢?也就是说${variable1}肯定等于字符串variable2,那么怎样获取value这个字符串呢?

两种方式实现:

eval result=\$$variable1

result=${!variable1}

换个角度说明下:间接引用中,variable1其实是放的是最终值的地址指针而已。

 

9.5 bash数学运算

expr 100 \* 200

 

9.5.2 bc运算器

脚本中调用bc运算器的一般格式为:

variable=$(echo "options; expression" | bc)

#!/bin/bash

var1=20
var2=3.141592657
var3=`echo "scale=1; $var2 * 2 / 1" | bc`
echo "the semi... is $var3"

 

 本人博客已搬家,新地址为:http://yidao620c.github.io/

分享到:
评论

相关推荐

    linux shell命令sed的使用方法

    linux shell命令sed的使用方法

    linux shell命令tr的用法

    linux shell命令tr的用法

    Linux Shell高级技巧实战总结

    Linux Shell高级技巧实战总结 一、将输入信息转换为大写字符后再进行条件判断 二、为调试信息设置输出级别 三、判断参数是否为数字 四、判断整数变量的奇偶性 五、将Shell命令赋值给指定变量,以保证脚本的移植性 六...

    Linux Shell编程从初学到精通 第2版

    第9章 变量的高级用法 217 第10章 I/O重定向 243 第11章 Linux/UNIX Shell类型与区别 273 第12章 子Shell与进程处理 288 第13章 函数 314 第14章 别名、列表及数组 335 第15章 一些混杂的主题 359 第16章 ...

    linux实验六 shell变量

    一、实验目的 (1)熟悉shell变量 (2)掌握shell变量的用法 (3)掌握shell通配符的用法 (4)掌握编写shell脚本程序使用和输出环境变量

    LINUX and SHELL 自学总结

    七、数组生成方法 10 1. #SEQ方法生成 10 2. 通过内部{BEGIN..END}生成 11 3. 以性能比较 11 4. 数组 11 八、LINUX系统常用配置方法及命令 11 1. 网卡相关的TCP/IP网络配置文件地址 11 2. #NETCONFIG命令可以永久...

    Linux Shell编程3/3

    _grep家族 |_awk介绍 |_sed用法介绍 |_合并与分割 |_tr用法 第三部分登录环境 |_登录环境 |_环境和shell变量 |_引号 第四部分基础shell编程 |_shell脚本介绍 |_条件测试 |_控制...

    linux shell脚本对未定义变量的判断以及if的用法详解

    今天小编就为大家分享一篇linux shell脚本对未定义变量的判断以及if的用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    深入浅出Shell编程 Shell变量介绍

    •深入浅出Shell编程: Shell 变量 ◦1 系统变量 ◦2 Shell用户变量 ■2.1 基础 ■2.2 使用技巧 ■2.3 shell 中的数组 ◦3 shell 环境变量 先不要管Shell的版本,来看看Shell 变量,在Shell中有三种变量:系统变量,...

    Linux bash Shell中的变量类型详解

    在Linux系统中进行日常运维或者是编写脚本时,变量是再熟悉不过的了,但这些变量都有哪些类型,具体的用法又有哪些差异呢?本文整理分享给大家: 一、bash变量类型: 本地变量 局部变量 环境变量 位置变量 特殊变量...

    LINUX与UNIX SHELL编程指南(很全)

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    LINUX与UNIX SHELL编程指南

    第十四章 环境和SHELL变量 第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 ...

    Linux Shell编程1/3

    _grep家族 |_awk介绍 |_sed用法介绍 |_合并与分割 |_tr用法 第三部分登录环境 |_登录环境 |_环境和shell变量 |_引号 第四部分基础shell编程 |_shell脚本介绍 |_条件测试 |_控制...

    Linux Shell编程2/3

    _grep家族 |_awk介绍 |_sed用法介绍 |_合并与分割 |_tr用法 第三部分登录环境 |_登录环境 |_环境和shell变量 |_引号 第四部分基础shell编程 |_shell脚本介绍 |_条件测试 |_控制...

    linux shell 编程教程

    linux shell编程 教程大全 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 ...

    Linux shell编程指南

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    绝版经典 LINUX与UNIX SHELL编程指南 PDF 高清版 [16.3M]

    第十四章 环境和SHELL变量 第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第...

    linux环境变量介绍

    linux下环境变量的设置,及shell的用法

    Linux与unix shell编程指南

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    跟老男孩学Linux运维:Shell编程实战

    / 62.1 什么是Shell / 62.2 什么是Shell脚本 / 72.3 Shell脚本在Linux运维工作中的地位 / 82.4 脚本语言的种类 / 92.5 常用操作系统默认的Shell / 112.6 Shell脚本的建立和执行 / 12第3章 Shell变量的核心...

Global site tag (gtag.js) - Google Analytics