学习笔记——shell中的引号和括号使用的总结

 对shell中各种引号的使用区分的不是太清楚,今天再次总结下来,一方面加深印象,另一方面以后用到时也可以回来看~

1、双引号 使用双引号可引用除字符$、`、/外的任意字符和字符串。

举例:

grep tao tao /home/taotaotheripper

运行结果:

grep: tao: 没有哪个文件或目录

grep "tao tao /home/taotaotheripper" 就可以正常运行了

 

var=taotaotheripper

echo "$var"

运行结果:taotaotheripper

说明双引号不能引用$字符

 

2、单引号

与双引号类似,但是可以引用任何字符。

举例:

var=taotaotheripper

echo '$var'

运行结果:$var

 

3、反引号

反引号用于设置系统命令的输出到变量。

举例:

echo `date`

运行结果:

2010年 07月 25日 星期日 20:15:37 CST

说明date先执行后执行结果被echo输出

 

var=`date`

echo $var

运行结果与上面相同

 

4、反斜线

屏蔽字符的特殊含义。

举例:

var=taotaotheripper

echo "/$var"

输出结果:$var

$字符已经被/转义

 

5、大括号和小括号

1)${var}和$(var)

    a)${var}

    这种用法中,加上大括号与不加没有区别,唯一不同是当不加大括号会出现歧义时应加上大括号。

    举例:

    var=taotaotheripper

    echo $vardandan

    运行结果:

   

    此时shell把vardandan看作一个变量,若第二行改为

    echo ${var}dandan

    运行结果:taotaotheripperdandan

 

    b)$(var)

     命令替换,与``作用相同,执行指令,并把指令的标准输出放到$(var)的位置。

 

2)一串命令执行和()和{}

    ()和{}都是对一串的命令进行执行,但有所区别:

    A、()只是对一串命令重新开一个子shell进行执行

    B、{}对一串命令在当前shell执行

    C、()和{}都是把一串的命令放在括号里面,并且命令之间用;号隔开

    D、()最后一个命令可以不用分号

    E、{}最后一个命令要用分号

    F、{}的第一个命令和左括号之间必须要有一个空格

    G、()里的各命令不必和括号有空格

    H、()和{}中括号里面的某个命令的重定向只影响该命令,但括号外的重定向则影响到括号里的所有命令

    举例:

    var=taotao

    (var=dandan)

    echo $var

    运行结果:

    taotao

    子shell中的var发生了改变,但是原shell中并没有发生改变

 

    var=taotao

    { var=dandan; }

    echo $dandan

    运行结果:

    dandan

     因为{}是在当前shell运行,所以原shell中的变量发生了变化

    { var1=taotao;var2=dandan;echo $var1>a;echo $var2;}

    cat a

    输出结果:

    taotao

    只有一个指令被重定向

 

    { var1=test1;var2=test2;echo $var1;echo $var2; }>a

    cat a

    运行结果:

    taotao dandan

   

6、中括号

    1)可用作数值计算。

    举例:

    echo $[ 1 * 2 ]

    运行结果:

    2

 

    2)可用作各种条件测试

    举例:

    [ 3 -eq 3 ]

    echo $?

    运行结果:

    0

    说明3与3相等

    关于中括号在条件测试中的用法有文件状态测试、字符串测试和数值测试,在此不展开了,呵呵。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值