分享

Linux shell特殊字符详解

 feifeima2008 2014-01-06


Linux shell特殊字符详解

 

[日期:2012-08-13]

来源:Linux社区  作者:bblxlit

[字体:大 中 小]

 

 

 

 


()  : 创建成组的命令
 
1)  一组由圆括号括起来的命令是新开一个子shell来执行的
 
因为是在子shell里执行,在圆括号里的变量不能被脚本的其他部分访问。因为父进程(即脚本进程)不能存取子进程(即子shell)创建的变量。
 
            (a=hello; echo $a)2)  数组初始化.
 
Array=(element1 element2 element3) (( )) : 扩展并计算(( ))里的整数表达式, 不能用来做浮点计算.     {} : 创建命令块
 
1)  这个结构也是一组命令代码块,事实上,它是匿名的函数。然而与一个函数所不同的,在代码块里的变量仍然能被脚本后面的代码访问。
 
2)  不像一个用圆括号括起来的命令组,一个用花括号括起的代码块不会以一个子shell运行。
 
“”: 部分引用——可以解释引号中的变量
 
    ‘’: 完全引用——引号内所有的内容都是常量
 
   : :空操作——什么都不做。一般用在脚本中。
 
1)  在必须要有两元操作的地方作为一个分隔符
 
: ${username=`whoami`}
 
# ${username=`whoami`}   如果没有开头的:,将会出错,除非"username"是一个外部命令或是内建命令.
 
2)  在参数替换中为字符串变量赋值
 
: ${HOSTNAME?} ${USER?} ${MAIL?}#  如果列出的一个或多个基本的环境变量没有设置,将打印出错信息。      ? : 在参数替换表达式里,测试一个变量是否被设置了值.
 
 [] : 测试在[ ]中的表达式.

数组元素——在数组的上下文中,方括号表示数组的每个元素的数字编号.
 
[[]] : 测试在[[]]中的表达式.
 
1)  在[[和]]之间的所有的字符都不会被文件扩展或是标记分割,但是会有参数引用和命令替换。
 
2)  用[[ ... ]]测试结构比用[ ... ]更能防止脚本里的许多逻辑错误。比如说,&&,||,<和>操作符能在一个[[]]测试里通过,但在[]结构会发生错误。
 
<< :在here document中使用的重定向.  

<<<:在here string中使用的重定向.
 
      -:

1) 用于stdin或stdout重定向的源或目的
 
 (cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xpvf

本篇文章来源于 Linux公社网站(www.)  原文链接:http://www./Linux/2012-08/68103.htm

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多