shell中的细节积累一

来源:互联网 发布:汽车保养小知识知多少 编辑:程序博客网 时间:2024/06/07 10:13

 

1. Shell的noglob设定

写shell脚本时遇到一个问题,tmp="*" echo $tmp 期望的结果是输出* 但是最终的输出结果都是当前目录的所有文件名(将*号进行了转义)。

如何不对特殊符号进行转义呢,设定noglob

设定noglob后,*等一些其他的特殊字符便会失去特定的功能,恢复成一个简单的字符
#设定noglob
set -o noglob

#取消设定noglob
set +o noglob 

 

 

2. Shell中反引号的作用 

反引号:在执行一条命令时,会先将其中的 ``,或者是$()中的语句当作命令执行一遍,再将结果加入到原命令中重新执行

示例如下 temp=`ls -l|grep test.sh`

echo $temp

原则:少用``,多用$()

 

 

3. Shell中的Here Document

Shell中的Here Document Here Document作用:
1. bash里面定义块变量的一种途径
2. 把命令和HERE之间的内容利用转向输入的方式交给该命令去处理
3. 可以在shell中调用其它的语言(expect,c,etc.)

例子:以下是在linux安装jdk完成时要求按Enter键的自动处理
/usr/bin/expect << \EOF       
cd /usr/local       
spawn ./jdk-6u37-linux-x64.bin
expect "continue....."        
send "\r"
EOF

0 0
原创粉丝点击