• shell 变量的 {} ()


    1.Shell中变量的原形:${var}
    变量的原形:${var},即是加一个大括号来限定变量名称的范围
     
    [root@bogon sh]# aa='ajax'
    [root@bogon sh]# echo $aa
    ajax
    [root@bogon sh]# echo $aa_AA
     
    [root@bogon sh]# echo ${aa}_AA
    ajax_AA
     
    2.$(cmd)
    [root@bogon t]# ls 1.txt 2.txt
    [root@bogon t]# echo $(ls)
    1.txt 2.txt
    echo $(ls) 执行过程
    shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,
    再将此输出放到原来命令 echo $(ls)中的 $(ls)位置,即替换了$(ls),再执行echo命令
    如下:
    echo $(ls)被替换成了echo 1.txt 2.txt
    这里要注意的是$(cmd)中的命令的错误输出是不会被替换的,替换的只是标准输出
    3、一串的命令执行()和{}
     
    ()和{}都是对一串的命令进行执行,但有所区别:
    相同点:
    ()和{}都是把一串的命令放在括号里面,并且命令之间用;号隔开
     
    不同点:
    ()只是对一串命令重新开一个子shell进行执行,{}对一串命令在当前shell执行
     
    ()最后一个命令可以不用分号,{}最后一个命令要用分号
    [root@dev opt]# var=test
    [root@dev opt]# (var='notest';echo $var;)
    notest
    [root@dev opt]# (var='notest';echo $var)
    notest
    [root@dev opt]# { var=notest;echo $var;}
    notest
     
    ()里的第一个命令和左边括号不必有空格,{}的第一个命令和左括号之间必须要有一个空格
    [root@dev opt]# { var=notest;echo $var;}
    notest
     
    ()和{}中括号里面的某个命令的重定向只影响该命令,但括号外的重定向则影响到括号里的所有命令
     
    从1加到100的和:
    [root@dev opt]# cat for.sh
    #!/bin/bash
    sum=0
    for  ((i=1; i<=100; i++))
    do
      sum=`expr $sum + $i`
    done
    echo $sum
  • 相关阅读:
    xxx
    04消息队列zmq的发布者-订阅者的计算π的简单程序。
    03网络编程从之异步服务器
    03Python网络编程之多线程服务端。
    03Python网络编程之单线程服务端
    03Python网络编程之客户端。
    03Python网络编程系列之服务端
    02select监听客户端
    02select监听服务端
    07爬虫之-urllib总结
  • 原文地址:https://www.cnblogs.com/putihuakai/p/11401469.html
Copyright © 2020-2023  润新知