shell 变量的高级用法

变量删除和替换

案例:从头开始匹配,将符合最短的数据删除 (#)

variable_1="I love you, Do you love me"
echo $variable_1
variable_2=${variable_1#*ov}
echo $variable_2

  

案例:从头开始匹配,将复合最短的数据删除(##)

varible_3=${variable_1##*ov}
echo $varible_3

案例:替换字符串,只替换第一次匹配成功的(/)

echo $PATH
var6=${PATH/bin/BIN}
echo $var6

  

案例:替换字符串,符合条件的全部替换 (//)

var7=${PATH//bin/BIN}
echo $var7

  

变量测试

简单举例(用的比较少)

var=${str-expr}

  

如果变量 str 没有定义,那么var=expr

如果变量 str的字符串中有值,那么 变量 var 的值就等于 str变量的值

字符串处理

 计算字符串的长度

案例1

var="hello world"
len=${#var}
echo $len

  

案例2

var1="zhang biao"
len=`expr length "$var1"`
echo $len

获取字串在字符串中的索引位置 (把字串拆分成一个个的字串,最先匹配到的第一个就会返回)

案例

计算字串的长度 (只能从头开始匹配,用的不多)

 

例子:找不到返回 0,不是从头开始匹配

var="quickstart is a app"
sub_len=`expr match "$var1" app`
echo $sub_len

从头开始匹配

sub_len=`expr match "$var" quick*`
echo $sub_len

sub_len=`expr match "$var" quick.*`
echo $sub_len

  

 抽取字串

原文地址:https://www.cnblogs.com/crazymagic/p/11067147.html

时间: 2024-10-23 23:33:55

shell 变量的高级用法的相关文章

第九章 变量的高级用法

内部变量 1.BASH 记录了bash Shell的路径(通常为/bin/bash) [[email protected] tmp]# echo "$BASH" /bin/bash 2.BASH_VERSINFO 为一个数组,分别存储bash shell的主版本号,此版本号,补丁级别,编译版本,发行状态,硬件架构 [[email protected] tmp]# cat c.sh #! /bin/bash for n in 0 1 2 3 4 5 do echo "BASH_

shell变量的特殊用法

转载:http://blog.csdn.net/shmilyringpull/article/details/7631106 假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt 可以用${ }分别替换得到不同的值:${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt${file##*/}:删掉最后一个 /  及其左边的字符串:my.file.txt${file#*.}:删掉第一个 .  及其左边的字符

shell脚本编程高级篇

SHELL脚本编程进阶循环执行:简单来说就是把一些指令重复循环. 循环代码具体的指令有三种: for , while , until其中for, while用的最多.for循环 for 变量名 in 列表;do 循环体 done 关键字的帮助都是用help来查询.for循环语法:在shell编程中 for,in,do,done.这些都是他的关键字,其中循环的指零就放在do和done之间.WORDS决定了循环次数.循环的次数由in 后面跟的WORDS(字符串)的数量决定.字符串的个数决定了do和d

变量定义及用法的特殊形式实战

例1:经过反引号的`date`命令测试 [[email protected] ~]# echo '`date`'     `date` #单引号时看到啥显示啥 [[email protected] ~]# echo "`date`"  Fri Jun 16 14:45:29 CST 2017 #双引号时如果里面是变量,会先把变量解析成具体内容在显示 [[email protected] ~]# echo `date`   Fri Jun 16 14:46:49 CST 2017 #对于

<06>变量使用前易犯错误总结+if语句介绍及基本格式+if-else语句及嵌套+if语句的高级用法+if语句的使用注意点+arc4random_uniform 函数导入一个头文件<stdlib.h>+

1)变量要初始化 -1 0  ,或者1 依据程序而定 ---------------------------------- if语句介绍及基本格式 分支语句结构 1)if 格式: if(表达式/常量/变量){ 语句块1; } 原理: 1)先计算小括号中的表达式的值 真(1) 会执行 大括号中的语句 假(0) 不会执行 大括号中的语句 2) switch 1 #include <stdio.h> 2 3 int main(int argc, const char * argv[]) { 4 5

shell变量/环境变量和set/env/export用法_转

转自:shell环境变量以及set,env,export的区别 一.shell环境变量的分类以及set env export的区别: set:显示(设置)shell变量,包括的私有变量以及用户变量.不同类的shell有不同的私有变量 bash,ksh,csh每中shell私有变量都不一样. env:显示(设置)用户变量变量. export:显示(设置)当前导出成用户变量的shell变量. export 显示当前导出成用户变量的shell变量,并显示变量的属性(是否只读),按变量名称排序: dec

awk的详解 基本用法和高级用法

1 awk 用途  报告生成工具,主要在处理文本方面特别强大,也是一个独立的程序语言,与grep sed 构成处理文本工具的三剑客. 同gawk 都是 GNU组织开发的开源工具 2 awk的工作原理,已每个记录进行每个域的分离,如 常常是以每一行作为一个记录,空白作为默认的与分隔符,然后以内置变量对每个域进行赋予变量! 3 语法结构 awk option scrips file 或这 echo “ ” | awk  option scripts 管道使用 option 选项主要有 -F  指定分

Ansible的高级用法playbook

Ansible的高级用法playbook Ansible入门 playbook工作过程 YAML特性    YAML的可读性好    YAML和脚本语言的交互性好    YAML使用实现语言的数据类型    YAML有一个一致的信息模型    YAML易于实现    YAML可以基于流来处理    YAML表达能力强,扩展性好 YAML语法简介   1. 在单一档案中,可用连续三个连字号(--)区分多个档案.另外,还有选择性的连续三个点号( ... )用来表示档案结尾   2. 次行开始正常写P

Linux shell 变量 数学 运算

Abstract : 1)  Linux shell 中使用 let , [ ] ,(( )) 三种运算符操作 shell 变量进行简单的基本运算: 2)Linux shell 中使用 expr 与 bc 两个程序实现高级运算: 1, Linux shell 变量的基本运算 数值作为常规变量直接赋值给变量,并且以字符串形式保存. 1.1 let 命令可以用于直接执行基本操作:         当我使用 let 的时候,我们不使用 $ 符号引用变量. no1=7; no2=8; echo "---