Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2068016
  • 博文数量: 178
  • 博客积分: 2076
  • 博客等级: 大尉
  • 技术积分: 2800
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-10 10:50
文章分类

全部博文(178)

文章存档

2010年(4)

2009年(13)

2008年(161)

我的朋友

分类: LINUX

2008-10-16 15:34:19

  SHELL 基础十二篇
 
$ str=                # 設為 null  此处经设变量为null
        $ var=${str=expr}        # 定義 var ,而不是str str在上面已经定义,说明不为unset 不会影响str的值为null的结果

        $ echo $var
       
        $ echo $str
       
        $ unset str        # 取消   没有定义str
        $ var=${str=expr}        # 定義 var  而已设定str
        $ echo $var
        expr
        $ echo $str
        expr
 ++++++++++
 str=a
    var=${str=exprt}
     echo $var
    a
echo $str
    a
 
 
【转贴】shell的嵌入命令



QUOTE:
原帖由 "zhangjoto" 发表:
嗯,,,,,我觉得网中兄说得有道理。
不过我对exec没太多了解。。。。。。。。

不如,寫兩個 shell script 來理解吧?

$ vi 1.sh

CODE:
#!/bin/bash
A=B
echo \$A in $0 is $A
./2.sh
#exec ./2.sh
#. ./2.sh
echo \$A in $0 is $A

$ vi 2.sh

CODE
#!/bin/bash
A=C
echo \$A in $0 is $A

$ chmod a+x [12].sh
$ ./1.sh

測試時,請分別將 1.sh 如下三行作如下修改:
1) 用 fork
./2.sh
#exec ./2.sh
#. ./2.sh

2) 用 exec
#./2.sh
exec ./2.sh
#. ./2.sh

3) 用 source
#./2.sh
#exec ./2.sh
. ./2.sh

然後,思考一下:
1) 為何第三行仍是 B 值?
2) 為何看不到第三行了?(tips: exec 會終止當前 shell 哦)
3) 為何第三行的值是 C 而不是 B ?又為何第二行的 $0 是 1.sh 而非 2.sh ? (tips:source 是將 code 抓進來跑...)
阅读(592) | 评论(0) | 转发(0) |
0

上一篇:TCP握手协议

下一篇:简简单单讲map FW

给主人留下些什么吧!~~