本帖最后由 whpu000625 于 2011-04-22 13:58 编辑 我有如下三个文件 # cat test.sh[code]#!/bin/bash #!/bin/bash AA="" export AA ./test2.sh echo "======test======="AA=$AA [/code]#cat test1.sh[code]#!/bin/bash test() { AA="aaaa" } [/code]#cat test2.sh[code]#!/bin/sh . ./test1.sh test echo "=======test2======" AA=$AA [/code]test.sh中定义export出环境变量AA。 test1.sh中定义函数test用于改变AA的值,...
登录到系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell,一个是登录时系统启动的shell,另一个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,它的脚本shell将终止,可以返回到执行该脚本之前的shell。从这种意义上来说,用户可以有许多shell,每个shell都是由某个shell(...
在shell脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出。export命令将使系统在创建每一个新的shell时定义这个变量的一个拷贝。这个过程称之为变量输出。 exportfile1.sh 清单 #!/bin/bash #定义变量 myname="liwei" #export export myname echo $myname ./ex...
shell与export命令 用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行 shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell,一个是登录时系统启动的shell,另一 个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,它的脚本shell将终止,可以返回到执行该脚本之前的shell。从这种意义上来 说,用户可以有许多 sh...
linux export 的作用 子shell与export命令 用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell,一个是登录时系统启动的shell,另一个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,它的脚本shell将终止,可以返回到执行该脚本之前的shell。从这种意义上来说,...
[root@JHX-LINUX-SERVER study]# cat prog1 e1=100 export e1 e2=200 e3=300 prog2 [root@JHX-LINUX-SERVER study]# cat prog2 echo $e1 $e2 $e3 $e4 [root@JHX-LINUX-SERVER study]# echo $e2 20 [root@JHX-LINUX-SERVER study]# prog1 100 200 300 e1是export到子shell里面的,e3也是,但是e2怎么到子shell里面的?无法理解
环境:ubuntu 10.04 bash 当我在控制台使用export -f 声明全局函数时是可以的,如下:[code]#ftest() { echo "Hello $LOGNAME";} #export -f ftest #bash #ftest Hello root[/code]当我试图在脚本里面使用export -f 时就会出错,如下test.sh:[code]#!/bin/sh ftest() { echo "Hello $LOGNAME" } export -f ftest ./test2.sh[/code]如下test2.sh:[code]#!/bin/sh ftest[/code]当我运行:./test.sh 的时候报错: export: ...
脚本如下: #!/bin/sh export TEST=aaaa 怎么运行此脚本的时候,环境变量TEST还是不行啊? 怎么在脚本中运行已有的命令?貌似嵌入板上没的/bin/里面没有export,但是可以在板上运行export? 怎么回事??
在调用shell过程时, 调用者其实是先运行一个子sh环境, 该子环境的输入是被调用的shell文件. 由于UNIX进程的独 立性, 在该子sh环境建立时, 它复制了父sh进程的环境变量. 而当它退出时, 它只是简单地终止它自身. 因为父子sh不共 用相同的环境, 所以sh提供了一个export命令, 用于把子sh 的环境变量值传送给父sh相应的环境变量. 例: $ cat >; shella #!/bin/sh aa = "abc" ^D $ cat >; shellb aa = "123" shella echo $aa ^D 运行she...