Shell命令替换与变量替换】的更多相关文章

命令替换 命令替换是指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…
原本的find命令: find /apps/Devops/jenkins/workspace/swapping/target/ -name '*swapping*.jar' 错误的命令: SOURCE_PATH=/apps/Devops/jenkins/workspace SERVER_NAME=swapping SOURCE_JAR_PATH=$(find "$SOURCE_PATH/$SERVER_NAME/target/" -name '*$SERVER_NAME*.jar' )…
声明:$ 后面跟linux可执行命令 一.变量替换                   语法                      说明 ${变量名#匹配规则} 从变量的开头进行规则匹配,将符合最短的数据删除 ${变量名##匹配规则} 从变量的开头进行规则匹配,将符合最长的数据删除 ${变量名%匹配规则} 从变量的尾部进行规则匹配,将符合最短的数据删除 ${变量名%%匹配规则} 从变量的尾部进行规则匹配,将符合最长的数据删除 ${变量名/旧字符串/新字符串} 变量内容包含旧字符串,则第一个旧…
shell脚本?在说什么是shell脚本之前,先说说什么是shell. shell是外壳的意思,就是操作系统的外壳.我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包括ls.cd.pwd等等.总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动.暂停.停止程序的运行或对计算机进行控制. shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效.安全.低成本地使用 Linux 内核,这就是 Shell 的本质. s…
用户登录到Linux系统后,系统将启动一个用户shell,我们暂且称这个shell为shell父. 在这个shell父中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序. 当使用sh或者bash运行shell脚本程序时,系统将创建一个子shell,我们暂且称为shell子. 此时,系统中将有两个shell,一个是登录时系统启动的shell父,另一个是系统为运行脚本程序创建 的shell子.当一个脚本程序运行完毕,脚本shell子将终止,返回到执行该脚本之前的shell父.…
命令行编辑操作 功能 Ctrl+b或左箭头键 左移一个字符(移至前一个字符) Ctrl+f或右箭头键 右移一个字符(移至后一个字符) Ctrl+a 移至行首 Ctrl+e 移至行尾 Esc b 左移一个单词 Esc f 右移一个单词 Del 删除光标所在处的字符 Ctrl+d 删除光标所在处的字符 BACKSPACE或Ctrl+h 删除光标左边的字符 Ctrl+k 删除至行尾 命令历史 在Bash中,history命令能够保存最近所执行的命令.这些命令的历史记录号从1开始,只有有限个命令可以被保…
1.bind 在shell中,内建(builtin)命令bind,格式如下: bind [-m keymap] [-lpsvPSVX] bind [-m keymap] [-q function] [-u function] [-r keyseq] bind [-m keymap] -f filename bind [-m keymap] -x keyseq:shell-command bind [-m keymap] keyseq:function-name bind readline-com…
如果表达式中包含特殊字符,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…
eval命令妙用--变量嵌套替换 eval命令在Linux下的应用非常广泛,在写脚本的时候遇到一个变量嵌套的问题,用eval迎刃而解,略试不爽啊. var1="hello" i=1 #有时候i需要放在循环里,所以实际应用中有意义 what=var${i} temp=what echo $temp #打印出what eval temp=$(echo \$$what) echo $temp #打印出hello 究其原因在于eval替换表达式中的变量再做运算. 更多eval用法见下: eva…
文章转自: 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…
sed替换的基本语法为:----s后面跟的是分隔符,原字符串可使用.*这种正则表达式进行整行替换 代码如下: sed 's/原字符串/替换字符串/' 单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线"\"进行转义,但是单引号"'"是没有办法用反斜线"\"转义的,这时候只要把命令中的单引号改为双引号就行了,例如: 代码如下: sed "s/原字符串包含'/替换字符串包含'/" //要处理的字符包含单引号…
我们经常使用一些模板语言来处理一些变量替换.比如jsp,php,velocity,freemarker,thymeleaf等.那对于shell来说,应该怎样替换变量呢.有一种很简单的办法可以做到. 先来看一个应用场景.在datax是阿里开源的一个异构数据源同步框架,其配置文档是json的,我想要用shell去调用执行pg到pg的数据同步,需要根据我的配置生成对应的配置文件.这如果用java来做就是维护一个对象,设置value,最后json-encode就好了.要是使用shell,这样也可以做到:…
linux bash shell之变量替换::=句法.=句法.:-句法.-句法.=?句法.?句法.:+句法.+句法   linux bash shell之变量替换::=句法.=句法.:-句法.-句法.=?句法.?句法.:+句法.+句法 变量替换和变量默认值设置是紧密相关的,至少从概念出发是如此. 参数扩张是将类似于变量的参数用它的值来替换.例如以“echo $VAR”的形式调用一个简单的变量.此外还有更多的特性可以访问.这个句法还包含一些没有扩展的特性,虽然这些特性自身很有意义.首先,这类特性执…
转自:http://blog.csdn.net/xuhongning/article/details/6191515 1,参数替换: 不含有“:”的,只要定义了,就生效,不管是否为空 含有“:”的,即使定义了,但是为空就不生效 用来替换的内容可以是字符串.一个变量.命令的输出 被替换的内容是变量,如$a.$1等 1)默认值替换,如果变量$var没有定义,则整体值为default字符串,但var变量本身并没有被设置: ${var-default}                    如果var定…
变量的名字是它的值保存的地方.引用它的值称为变量替换.$让我们仔细地区别变量和变量的值.如果variable1是一个变量的名字,那么$variable1就是引用这个变量的值――即这个变量它包含的数据.如果只有变量名出现(即指没有前缀$),那就可能是在1)声明一个变量或是在给这个变量赋值.2)声明废弃这个变量,3)导出(exported)变量,4)或是在变量指示的是一种信号的特殊情况.(参考例子 29-5).变量赋值可以使用等于号(=),比如:var1=27.也可在read命令和在一个循环的情况下…
Shell 命令行实现将一个站点页面全部下载到本地并替换其中链接的脚本 不知道为什么,我总想用 Shell 脚本来实现把一个站点内容给下载下来.但是下载什么站点我确不知道.今天尝试了一下利用 curl 实现了下载一个站点列表的 demo 算是小试牛刀. 当脚本成功之后,我知道,要把这个站点完全下载下来也是没有问题的.不过是需要更加复杂的循环和匹配而已. 接下来有工作要做,所以 shell 的学习暂时先告一段落. 实现代码 #!/bin/bash echo '--开始下载首页--' curl -s…
shell编程系列1--shell脚本中的变量替换 变量替换总结: .${变量#匹配规则} # 从头开始匹配,最短删除 .${变量##匹配规则} # 从头开始匹配,最长删除(贪婪模式) .${变量%匹配规则} # 从尾开始匹配,最短删除 .${变量%%匹配规则} # 从尾开始匹配,最长删除(贪婪模式) .${变量/旧字符串/新字符串} # 替换变量内的旧字符串为新字符串,只替换第一个 .${变量//旧字符串/新字符串} # 替换变量内的旧字符串为新字符串,全部替换 variable_1="i l…
Shell 脚本几种基本命令替换区别 前言:因为工作需要,需要编写 shell script .编写大量 shell script 时,累计了大量经验,也让自己开始迷糊几种函数输出调用的区别.后面和 LinuxCN 前辈们请教了一下这个问题,大致明白了区别.这里分享给大家,希望对大家能有所收获. `command ` $(command) ${command} $(){command} Part 1 : command 这是 "命令标准输出作为函数标准输入" 操作方法之一,有很大的弊端…
1 sed支持两种方式的变量替换,建议使用下面的第二种,比较简单 这样就可以给变量a赋值很多特殊字符了,比如 赋值a='!@#¥%……' sed -n 's/echo/'"$a"'/p' aased -n "s/echo/$a/p" aa 这四种方法都可用,在这里跟大家分享下,=---同时谢谢netman大哥,前辈就是前辈哈哈 1.eval sed ’s/$a/$b/’ filename2.sed "s/$a/$b/" filename3.sed…
shell编程系列3--命令替换 命令替换 命令替换总结 方法1 `command` 方法2 $(command) 例子1: 获取系统的所有用户并输出 for循环能以空格.换行.tab键作为分隔符 [root@localhost shell]# cat example_1.sh #!/bin/bash # index= ` do echo "this is $index user: $user" index=$(($index + )) done [root@localhost she…
sed “s/查找字段/替换字段/g” echo helloworld|sed  ‘s/hello/world/g’ sed 替换字符串以变量形式 1.sed命令使用双引号的情况下,可以使用$var(变量)直接引用: echo | sed "s/^/$RANDOM.rmvb_/g" 13562.rmvb_ 2.sed命令使用单引号的情况下,可以使用'"$var"'引用(单引号,然后双引号,变量): echo | sed 's/^/'"$RANDOM&quo…
GoldenGate运行时允许在参数文件中动态指定一个值,即在参数文件中使用一个变量,而不是一个静态的值,当启动OGG进程时,根据环境动态加载此变量的值,达到在不同环境中,通过变量定义,实现多个环境的相同配置部署.对于一对多或多对一的场景,此配置可以降低维护的复杂性. 如下,是一个标准的data pump参数设置: extract peast rmthost oelora114, mgrport 15051 rmttrail ./dirdat/pe passthru table east.*;…
在shell脚本里,使用sed,然后用变量替换指定的字符串,一直出现这个错误:但是单独运行在外面可以 把分隔符/替换成#就可以: sed "s#revision=.*#revision=$sTime#g"  $location/default.xml 具体为啥 还得研究研究 嘿嘿…
问题描述 对多个变量及多行输出到文件,存在变量自动替换,当使用cat<<EOF不想对内容进行变量替换.命令替换.参数展开等 问题解决 转义特殊字符如 $ `等 一.对 $·\ 进行转义 cat >> a.sh << EOFecho \`hostname\`echo \$HOMEEOF 二.在分界符EOF前添加反斜杠\,或者用单引号.双引号括起来 cat >> a.sh << \EOFecho `hostname`echo $HOMEEOF cat…
pl/sql sql窗口允许输出和允许变量替换 允许输出:类似在命令窗口中输入的 setserveroutput on; 允许变量替换:如果点击了这个,类似于执行 set define off命令 在pl/sql的SQL窗口中,使用变量替换的时候,同一个变量只提示一次: 在pl/sql的命令窗口中,使用变量替换的时候,同一个变量使用几次提示输入几次:…
Linux cat 多行写入文件防止变量替换  问题描述 对多个变量及多行输出到文件,存在变量自动替换,当使用cat<<EOF不想对内容进行变量替换.命令替换.参数展开等 问题解决 转义特殊字符如 $ `等 一.对 $·\ 进行转义 cat >> a.sh << EOFecho \`hostname\`echo $HOMEEOF 二.在分界符EOF前添加反斜杠\,或者用单引号.双引号括起来 cat >> a.sh << \EOFecho `hos…
在Linux系统中,文件内容的批量替换同Windows平台相比要麻烦一点.不过这里可以通过Shell命令或脚本的方式实现批量替换的功能. 笔者使用过两个命令:perl和sed ,接下来会对其做出说明. 首先是perl命令,主要用于文件扫描,提取文件信息并打印 perl -pi -e 's/被替换的字符串/替换后的字符串/g' <替换内容所在文件> perl 命令后选项居多,这里只会讲解一些常用的选项 -i  编辑文件,就地修改 -e 让Perl程序在命令行中运行 -r 搜索子目录 -l 输出匹…
一.问题描述 如下SQL: INSERT INTO tmp(val)VALUES('a&b'); 执行过程中会出现如下提示: 点击"确定"过后我们查看表中的数据: b后面的字符串没有插入进去. 二.原因解析--替代变量 SQL*PLUS中默认的"&"表示替代变量,当写入&时,数据库会要求其替换成其它的值. 如,你可以定义: 这样插入数据库中的值就是ahellob. 三.解决方法 解决方法1:关闭变量替换 如下所示: SET DEFINE OF…