当前位置: 技术问答>linux和unix
shell程序里面使用export的问题
来源: 互联网 发布时间:2016-03-04
本文导语: 我把这个语句 export DATARCV_LOG1="log" 放到一个shell程序里面去执行之后,发现 echo $DATARCV_LOG1 返回为空, 但是我直接命令行执行 export DATARCV_LOG1="log" 的时候, echo $DATARCV_LOG1可以看到结果 log 请问各位大侠这是怎么回事...
我把这个语句
export DATARCV_LOG1="log"
放到一个shell程序里面去执行之后,发现
echo $DATARCV_LOG1
返回为空,
但是我直接命令行执行
export DATARCV_LOG1="log"
的时候,
echo $DATARCV_LOG1可以看到结果
log
请问各位大侠这是怎么回事?怎么才能在shell里面为系统变量赋值呢?
export DATARCV_LOG1="log"
放到一个shell程序里面去执行之后,发现
echo $DATARCV_LOG1
返回为空,
但是我直接命令行执行
export DATARCV_LOG1="log"
的时候,
echo $DATARCV_LOG1可以看到结果
log
请问各位大侠这是怎么回事?怎么才能在shell里面为系统变量赋值呢?
|
楼主想要的东东, Unix早就实现了!
假设你的shell脚本为env.sh
在Bourne shell/Korn shell下 用 . ./env.sh就可以了
在C shell下用 source ./env.sh就可以了!
bash 下两种方法都可以!
当然: C shell 使用setenv设置环境变量的.
假设你的shell脚本为env.sh
在Bourne shell/Korn shell下 用 . ./env.sh就可以了
在C shell下用 source ./env.sh就可以了!
bash 下两种方法都可以!
当然: C shell 使用setenv设置环境变量的.
|
你在登陆的sh(环境A)下启动的一个sh(环境B),
这时”环境B“是”环境A“的子进程”,所以“环境B”继承了“环境A”的“环境变量”。
这时你在“环境B”里添加一个环境变量,然后“环境B”结束后回到“环境A” 但“环境A”的环境变量没有改变。
这时”环境B“是”环境A“的子进程”,所以“环境B”继承了“环境A”的“环境变量”。
这时你在“环境B”里添加一个环境变量,然后“环境B”结束后回到“环境A” 但“环境A”的环境变量没有改变。
|
echo $DATARCV_LOG1 也要放到脚本里