[20171120]bash使用here documents的一个小细节.txt

--//昨天看bash文档,,发现一些小细节,做一个记录,就是EOF加引号的问题.

command <<‘EOF‘
 cmd1
 cmd2 arg1
 $var won‘t expand as parameter substitution turned off by single quoting
EOF

--//例子:

$ cat a.sh
#! /bin/bash
cat <<‘EOF‘
this is a test
hostname is $HOSTNAME
$(date)
EOF

$ . a.sh
this is a test
hostname is $HOSTNAME
$(date)

--//你可以发现$HOSTNAME,$(date)并没有展开或者执行转换.
--//如果写成如下:

cat <<EOF
this is a test
hostname is $HOSTNAME
$(date)
EOF

$ . a.sh
this is a test
hostname is xxxxxx
Mon Nov 20 09:22:06 CST 2017

--//可以发现现在是执行了里面的date命令,$HOSTNAME也发生了转换.

时间: 2024-08-05 10:21:23

[20171120]bash使用here documents的一个小细节.txt的相关文章

C++在使用Qt中SLOT宏须要注意的一个小细节

大家都知道C++虚函数的机制,对于基类定义为虚函数的地方,子类假设覆写,在基类指针或者引用来指向子类的时候会实现动态绑定. 但假设指针去调用非虚函数,这个时候会调用C++的静态绑定,去推断当前的指针是什么类型,就去运行哪个类型的函数. 非常有一种比較经典的使用方法,就是Template Method模式,基类定义一个非虚的算法框架,里面详细定义一些纯虚的函数片段,由子类来进行实现,从而实现了控制整体框架,但能够给客户自由定制的灵活性.这个使用方法事实上就是指针去调用了基类的方法,由方法的扩展之后

字符串的一个小细节

就是在今天,发现了一个问题 "0_0 (: /-\ : ) 0-0".replace(/\s/g,'') 结果是"0_0(:/-:)0-0" 本来只是想把空白符删掉的,可是为什么"\"也会被替换掉 忽略了一个小细节,字符串中"\"是转义字符,是无法显示出来的 "0_0 (: /-\\ : ) 0-0".replace(/\s/g,'') 如果是这样就可以达到想要的效果了

C++在使用Qt中SLOT宏需要注意的一个小细节

大家都知道C++虚函数的机制,对于基类定义为虚函数的地方,子类如果覆写,在基类指针或者引用来指向子类的时候会实现动态绑定. 但如果指针去调用非虚函数,这个时候会调用C++的静态绑定,去判断当前的指针是什么类型,就去执行哪个类型的函数. 很有一种比较经典的用法,就是Template Method模式,基类定义一个非虚的算法框架,里面具体定义一些纯虚的函数片段,由子类来进行实现,从而实现了控制总体框架,但可以给客户自由定制的灵活性.这个用法其实就是指针去调用了基类的方法,由方法的扩展之后扩展到虚函数

9行代码体现集合框架中的一个小细节

String[] strs = {"string--01", "string--02", "string--03", "string--04"};List<String> strsList = Arrays.asList(strs);//以下语句输出:[string--01, string--02, string--03, string--04]System.out.println(strsList); int[]

关于 JavaScript 中一个小细节问题 (在控制台中直接 {} 对象报错问题)

在 Chrome 浏览器,大家可能遇到这样一个小问题. 随便输入一个 Object 对象  ,比如 {Name:'王尼玛',Age:20} ,将会报错.之前,也从来没去考虑过到底是为啥原因. 今天,刚好看到博客园有博友文章,顺便记录一下. 在 JavaScript 中, : 有三种作用,想必大家都知道,其一  三元表达式  true? A:B,其二 在 switch case 中 case 语句中会用到,其三 就是上图中,对象直接量表达式中. 其实 ,在 JS 中,: 还有一种用法,如下所示,内

url编码的一个小细节

0x00 前言 最近做渗透测试,大坑没有,小坑不断,都是细节出了问题才导致的错误发生,今天又遇到了一个小的问题,调试了一段时间才发现是编码问题....所以说细节决定成败阿.. 0x01 问题 笔者在做安全检测时遇到一处注入,SQLMAP也成功跑出注入但当笔者使用浏览器进行手工注入检测时,却发现不存在注入抱着解决问题的心态,使用sqlmap -v 5 来查看具体发送数据包的信息 sqlmap -u "xxxxxxx/xxxx?aaa=xxxx" -v 5 笔者突然被%25吸引住,顿时明白

曲演杂坛--使用TRY CATCH应该注意的一个小细节

群里一个朋友遇到一个TRY CATCH的小问题,测试后发现是自己从来没有考虑的情况,写篇blog加深下印象 --========================================================= 在MSDN上对TRY CATCH有如下描述: 对 Transact-SQL 实现与 Microsoft Visual C# 和 Microsoft Visual C++ 语言中的异常处理类似的错误处理.Transact-SQL 语句组可以包含在 TRY 块中.如果 TRY

创建oracle表的时候一个小细节,会导致你处理java类型转换是时候很蛋疼

1.之前在做项目的时候,数据库是用powerdesigner设计的,由于当时设计的时候没注意,int的类型 没给长度 在生成数据库的时候,oracle默认给你生成的类型是BigDecimal这种大类型的.当时还觉得没什么.后台存的时候new一个BigDecimal出来再存就是 可是后来 一位同事在统计数据记录的时候,count(*)统计出来的也是BigDecimal    这时候用hibernate转很麻烦 如果是int类型 那么hibernate转的方式:   int count =((Lon

使用Spring和SpringMVC管理bean时要注意的一个小细节

最近一直在做毕业设计...用到了Shiro和SpringMVC..用过shiro的朋友都知道shiro需要自己去写Realm,然后把Realm注入到SecurityManager中.而SecurityManager是shiro自带的类..我不可能去修改源码,增加注解,所以配置这个Realm bean的时候使用的是XML的配置方式..而又因为整个项目使用到了SpringMVC,我自己写的类基本都是用注解去配置的..然后就有了这么一个问题...我的问题与配置和http://www.oschina.n