Shell 变量替换及测试】的更多相关文章

声明:$ 后面跟linux可执行命令 一.变量替换                   语法                      说明 ${变量名#匹配规则} 从变量的开头进行规则匹配,将符合最短的数据删除 ${变量名##匹配规则} 从变量的开头进行规则匹配,将符合最长的数据删除 ${变量名%匹配规则} 从变量的尾部进行规则匹配,将符合最短的数据删除 ${变量名%%匹配规则} 从变量的尾部进行规则匹配,将符合最长的数据删除 ${变量名/旧字符串/新字符串} 变量内容包含旧字符串,则第一个旧…
如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: #!/bin/bash a=10 echo -e "Value of a is $a \n" 运行结果: Value of a is 10 这里 -e 表示对转义字符进行替换.如果不使用 -e 选项,将会原样输出: Value of a is 10\n 下面的转义字符都可以用在 echo 中: 转义字符 含义 \\ 反斜杠 \a 警报,响铃 \b 退格(删除键)…
如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: #!/bin/bash a=10 echo -e "Value of a is $a \n" 运行结果: Value of a is 10 这里 -e 表示对转义字符进行替换.如果不使用 -e 选项,将会原样输出: Value of a is 10\n 下面的转义字符都可以用在 echo 中: 转义字符 含义 \\ 反斜杠 \a 警报,响铃 \b 退格(删除键)…
如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: 复制纯文本复制 #!/bin/bash a=10 echo -e "Value of a is $a \n" #!/bin/bash a=10 echo -e "Value of a is $a \n" 运行结果: Value of a is 10 这里 -e 表示对转义字符进行替换.如果不使用 -e 选项,将会原样输出: Value of…
转自:http://blog.csdn.net/xuhongning/article/details/6191515 1,参数替换: 不含有“:”的,只要定义了,就生效,不管是否为空 含有“:”的,即使定义了,但是为空就不生效 用来替换的内容可以是字符串.一个变量.命令的输出 被替换的内容是变量,如$a.$1等 1)默认值替换,如果变量$var没有定义,则整体值为default字符串,但var变量本身并没有被设置: ${var-default}                    如果var定…
  在SHELL编程中,经常要处理一些字符串变量.比如,计算长度啊.截取子串啊.字符替换啊等等,常常要用到awk.expr.sed.tr等命令.下面给大家介绍个简单的字符串处理方法,用不着嵌套复杂的子命令. ${#VALUE}:计算VALUE字符串的字符数量. ${VALUE%.*}或${VALUE%%.*}:删除VALUE字符串中以分隔符"."匹配的左边字符,保留右边字符. ${VALUE#*.}或${VALUE##*.}:删除VALUE字符串中以分隔符"."匹配…
目录 1. Shell变量概述 1.定义变量,变量名=变量值.不能出现"-横杠"命令 2.引用变量,$变量名 3.查看变量,set显示所有变量,包括自定义变量和环境变量 4.取消变量,作用范围:仅在当前Shell中有效. 5.注意事项,引用变量时注意事项,单双引号和不加引号的区别. 注意: 2.执行结果如下: 3.这里需要注意 $*和$@的区别 执行结果如下: 自定义变量运算 命令的嵌套使用,使用$($()) 2. Shell变量赋值 echo命令输出颜色. 3. Shell变量替换…
1.文件测试表达式的用法 我们在编程时处理一个对象时,需要对对象进行测试,只有符合要求的才采取操作处理:这样做的好处是避免程序出错以及无所畏的消耗系统资源,这个测试的对象可以是文件.字符串.数字等. 下表为常用文件操作符 特别说明:这些操作符对于[[ ]].[].test几乎是通用的,更多的操作可以用man test 查看.上表中的-e只要是有文件就行不管是文件还是目录. 2.文件测试表达式举例 2.1 普通文件(测试文件类型) 2.2 目录文件(测试文件类型) 2.3 测试文件属性 2.4 测…
我们经常使用一些模板语言来处理一些变量替换.比如jsp,php,velocity,freemarker,thymeleaf等.那对于shell来说,应该怎样替换变量呢.有一种很简单的办法可以做到. 先来看一个应用场景.在datax是阿里开源的一个异构数据源同步框架,其配置文档是json的,我想要用shell去调用执行pg到pg的数据同步,需要根据我的配置生成对应的配置文件.这如果用java来做就是维护一个对象,设置value,最后json-encode就好了.要是使用shell,这样也可以做到:…
文章转自: http://www.cnblogs.com/maxupeng/archive/2011/07/02/2096551.html 一.test命令 test命令是shell内部命令,它计算作为其参数的表达式是真还是假. 如果表达式为真,则test返回0(注意与C语言0表示false不同),如果表达式为假,返回非0. shell提供了另外一个调用test命令的方式,就是用方括号[]来代替单词test. 调用test命令的格式为: test expr1 opr expr2 或是 [ exp…
1 shell变量基础shell变量是一种很“弱”的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义.所以若要进行数学运算,必须使用一些命令例如let.declare.expr.双括号等.shell变量可分为两类:局部变量和环境变量.局部变量只在创建它们的shell中可用.而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用.有些变量是用户创建的,其他的则是专用shell变量.变量名必须以字母或下划线字符开头.其余的字符可以是字母.数字(0~9)或下划线字符…
命令替换 命令替换是指Shell可以先执行命令,将输出结果暂时保存,在适当的地方输出.命令替换的语法: `command` 注意是反引号,不是单引号,这个键位于 Esc 键下方.下面的例子中,将命令执行结果保存在变量中: #!/bin/bash DATE=`date` echo "Date is $DATE" USERS=`who | wc -l` echo "Logged in user are $USERS" UP=`date ; uptime` echo &q…
1,shell变量的替换 变量可以根据变量是否为空或者被删除,而被替换为特定的值 ${var}  变量本来的值 $(var:-word)   如果变量为空,或者已被删除那么返回word,但是不改变var的值 name="xiaoming" echo "xiaoming 's age is ${age:-12}" ech   "age = ${age}" >>>>>>>> xiaoming 's ag…
linux bash shell之变量替换::=句法.=句法.:-句法.-句法.=?句法.?句法.:+句法.+句法   linux bash shell之变量替换::=句法.=句法.:-句法.-句法.=?句法.?句法.:+句法.+句法 变量替换和变量默认值设置是紧密相关的,至少从概念出发是如此. 参数扩张是将类似于变量的参数用它的值来替换.例如以“echo $VAR”的形式调用一个简单的变量.此外还有更多的特性可以访问.这个句法还包含一些没有扩展的特性,虽然这些特性自身很有意义.首先,这类特性执…
shell编程系列1--shell脚本中的变量替换 变量替换总结: .${变量#匹配规则} # 从头开始匹配,最短删除 .${变量##匹配规则} # 从头开始匹配,最长删除(贪婪模式) .${变量%匹配规则} # 从尾开始匹配,最短删除 .${变量%%匹配规则} # 从尾开始匹配,最长删除(贪婪模式) .${变量/旧字符串/新字符串} # 替换变量内的旧字符串为新字符串,只替换第一个 .${变量//旧字符串/新字符串} # 替换变量内的旧字符串为新字符串,全部替换 variable_1="i l…
sed替换 - 含反斜杠(/)和Shell变量 摘自: https://blog.csdn.net/zhenyongyuan123/article/details/6616263 2011年07月19日 10:57:37 zhenyongyuan123 阅读数 17103 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zhenyongyuan123/article/details/6616263 sed替换 - 含反斜杠(/)和Shell变量…
变量的名字是它的值保存的地方.引用它的值称为变量替换.$让我们仔细地区别变量和变量的值.如果variable1是一个变量的名字,那么$variable1就是引用这个变量的值――即这个变量它包含的数据.如果只有变量名出现(即指没有前缀$),那就可能是在1)声明一个变量或是在给这个变量赋值.2)声明废弃这个变量,3)导出(exported)变量,4)或是在变量指示的是一种信号的特殊情况.(参考例子 29-5).变量赋值可以使用等于号(=),比如:var1=27.也可在read命令和在一个循环的情况下…
(转载)http://blog.csdn.net/zahuopuboss/article/details/8633891 为使shell编程更有效,系统提供了一些shell变量.shell变量可以保存诸如路径名.文件名或者一个数字这样的变量名.shell将其中任何设置都看做文本字符串.有两种变量,本地和环境.严格地说可以有4种,但其余两种是只读的,可以认为是特殊变量,它用于向shell脚本传递参数.   1 什么是shell变量按照定义来说,变量是存储设备中的一些可读写的存储单元.变量可以定制用…
在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的.因为他返回当前路径的".". $0:当前Shell程序的文件名dirname $0,获取当前Shell程序的路径 cd `dirname $0`,进入当前Shell程序的目录 这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外).在/home/admin/test/下新建test.sh内容如下: cd `dirname $` echo `pw…
Bash shell bash shell 是bourne shell 的升级版,“bourne again shell”.ubuntu的默认shell. 预备知识 1. "#!" 名为“sha-bang”,shell编程的开始.本质是一个2字节的文件特殊标记,加上这个能够让系统知道这个是一个科执行的脚本.具体参考man magic.这里注意 "#!"后边的路径必须正确. 2. 执行脚本: (1)可以使用chmod给.sh文件加上可执行权限,然后直接使用 ./scr…
Ansible playbooks playbook是由一个或多个“play”组成的列表.play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色.从根本上来讲,所谓task无非是调用ansible的一个module.将多个play组织在一个playbook中,即可以让它们联同起来按事先编排的机制同唱一台大戏.下面是一个简单示例. - hosts: webnodes    //webnodes定义一个主机组,表示应用的目标主机.下面定义的任务只对此组内的主…
一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境       2> 练习命令历史.命令别名       3> 重定向标准输入/输出/错误输出       4> 管道操作实践 步骤: 步骤一:切换用户的Shell环境 若需要临时使用另一种Shell环境,可以直接执行对应的Shell解释器程序,比如只要执行ksh可以切换到ksh命令行环境. [root@svr5 ~]# yum -y install ks…
类型     注释强变量 变量在使用前,必须事先声明,甚至还需要初始化 弱变量 变量用时声明,甚至不区分类型 变量的作用:用来保存变化的数据 变量名 名称固定,由系统设定或用户定义 变量值 根据用户设置.系统环境变化而变化 设置方法 变量名=变量值 Shell变量的类型 类型 说明 环境变量(全局变量) 由系统维护,用于设置工作环境,只有个别环境变量用户可以直接更改.可以在创建它们的shell及其派生出来的任意子进程shell中使用. 位置变量 通过命令行给脚本程序传递参数 预定义变量 bash…
特殊变量:位置变量大于9的时候,需要加上(),例如$(10)$*获取脚本的所有参数,如果不加""和$@是一样的效果,如果加上"",则表示所有参数组成一个字符串$0代表脚本本身,如果脚本加路径,那$0的结果也是加上路径的dirname 获取脚本路径 dirname /root/test.sh 结果:/rootbasebame 获取脚本名称 basename /root/test.sh 结果:test.sh$$ 获取当前shell的进程号 ,防止重复执行,可以通过此变量…
Shell变量 系统变量 在命令行提示符直接执行 env.set 查看系统或环境变量.env 显示用户环境变量,set 显示 Shell预先定义好的变量以及用户变量.可以通过 export 导出成用户变量. 一些写Shell脚本时常用的系统变量 $SHELL 默认 Shell $HOME 当前用户家目录 $IFS 内部字段分隔符 $LANG 默认语言 $PATH 默认可执行程序路径 $PWD 当前目录 $UID 当前用户 ID $USER 当前用户 $HISTSIZE 历史命令大小,可通过 HI…
如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所谓Shell程序,实际上是提供用户操作系统的一个接口,用户可以通过shell程序操作其他应用程序(eg. ls,chown,etc.),让这些应用程序可以呼叫内核来完成工作.Bash是Linux系统下的其中一种Shell程序.当前系统支持哪些Shell程序,可查看/etc/shells配置文件:查看…
1 shell变量基础 shell变量是一种很"弱"的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义.所以若要进行数学运算,必须使用一些命令例如let.declare.expr.双括号等.shell变量可分为两类:局部变量和环境变量.局部变量只在创建它们的shell中可用.而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用.有些变量是用户创建的,其他的则是专用shell变量.变量名必须以字母或下划线字符开头.其余的字符可以是字母.数字(0~9)…
变量 是一种很“弱”的变量,默认情况下,一个变量保存一个串,Shell不关心这个串是什么含义.所以若要进行数学运算,必须使用一些命令例如 let.declare.expr.双括号等. Shell变量可分为两类:局部变量和环境变量.局部变量只在创建它们的Shell中可用.而环境变量则可以在创建它们的Shell及其派生出来的任意子进程中使用.有些变量是用户创建的,其他的则是专用Shell变量. 变量的命名规则: 1.可以使用英文字母.数字(0~9)和下划线组成,任何其他的字符都标志着变量名的终止.…