set -o or set -a

set -o or set -a

[root@localhost root]# y=1
[root@localhost root]# bash
[root@localhost root]# $y
[root@localhost root]# exit
exit
[root@localhost root]# set -a
[root@localhost root]# bash
[root@localhost root]# echo $y
                                                            //why display empty  ?
[root@localhost root]# exit      
复制内容到剪贴板
代码:
set -a      Automatically mark variables  and  functions  which  are
            [U]modified[/U]  or  [U]created[/U]  for  export to the environment of
            subsequent commands.
      
是啊,我看书上说的set -o 或 set -a allexport 的作用是将当前shell的变量全部改为环境变量(全局变量),以便可以导入到子shell中。
可为什么我实验时(fc 2)在子shell中显示为空值呢?      
看来你的英文该补补了       
复制内容到剪贴板
代码:
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[2769 0] #[/color] unset -v v
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[2769 0] #[/color] echo $-
himBH
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[2769 0] #[/color] v=hello
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[2769 0] #[/color] bash -c 'echo $v'

[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[2769 0] #[/color] set -a
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[2769 0] #[/color] bash -c 'echo $v'

[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[2769 0] #[/color] v=world
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[2769 0] #[/color] bash -c 'echo $v'
world
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[2769 0] #[/color] set +a
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[2769 0] #[/color] bash -c 'echo $v'
world
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[2769 0] #[/color] export -n v
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[2769 0] #[/color] bash -c 'echo $v'

[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[2769 0] #[/color] o
      
谢谢斑竹,我学的俄语:(英语正在学ing
学好一门外语很重要,但学“对”很难啊。      
有备却做不到无患,郁闷ing      
[QUOTE=海天一色]谢谢斑竹,我学的俄语:(英语正在学ing
学好一门外语很重要,但学“对”很难啊。[/QUOTE]
这年头很少能碰到学俄语的哈, 稀罕       
我回家试了结果看着和版竹的不一样啊,why?
复制内容到剪贴板
代码:
[root@localhost root]# unset -v v
[root@localhost root]# echo $-
himBH
[root@localhost root]# v=hello
[root@localhost root]# bash -c `echo $v`
bash: line 1: hello: command not found
[root@localhost root]# set -a
[root@localhost root]# bash -c `echo $v`
bash: line 1: hello: command not found
[root@localhost root]# v=world
[root@localhost root]# bash -c `echo $v`
bash: line 1: world: command not found
[root@localhost root]# set +a
[root@localhost root]# bash -c `echo $v`
bash: line 1: world: command not found
[root@localhost root]# export -n v
[root@localhost root]# bash -c `echo $v`
bash: line 1: world: command not found
[root@localhost root]#
fc 2 想说爱你不容易,是不是我的shell初始化有问题呢.      
看清楚了, 俺用的是单引号 ' 而不是 `