诗和远方

shell中括号的特殊用法

1. 符号$后的括号

${a} 变量a的值, 在不引起歧义的情况下可以省略大括号

$(cmd) 命令替换。和`cmd`效果相同

$((exp))计算数学表达式exp的数值(exp可以是三目运算符和逻辑表达式)


2. 多条命令执行

(cmd1;cmd2;cmd3) 新开一个子shell顺序执行命令cmd1、cmd2、cmd3。各命令之间用分号隔开,最后一个命令后可以没有分号

{ cmd1;cmd2;cmd3;} 在当前shell顺序执行命令cmd1、cmd2、cmd3。最后一个命令后必须有分号,第一条命令和左括号之间必须用空格隔开。


3. 双括号的特殊用法

<算术运算符 (( )) >

(()) 增强括号的用法,常用于算术运算比较。双括号中的变量可以不使用$符号前缀。

可以直接使用for((i=0;i<5;i++)) 。等同于for i in `seq 0 4`或for i in {0..4}

可以直接使用if (($i<5))。等同与 if [ $i -lt 5 ]


[[]] 增强方括号用法, 常用于字符串的比较. 主要用于条件测试。双括号中的表达式可以使用&&, ||, <, >

可以直接使用if [[ $a != 1 && $a != 2 ]] 。 等同于if [ $a -ne 1] && [ $a != 2 ]或者if [ $a -ne 1 -a $a != 2 ]


shell语句,如果单独一行的话可以/不必加分号的。但是如果多个语句在一行,则必须要加分号。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Catalog
标签列表
最新
最热
常用网站
站点信息
  • 文章总数:2016
  • 页面总数:1
  • 分类总数:17
  • 标签总数:518
  • 评论总数:0
  • 浏览总数:592287
Archives
Copyright © 2017-2019 www.my889.com Some Rights Reserved.
推荐使用 Chrome 浏览器浏览本站
沪ICP备17052342号
Sitemap XML