为什么无法export到环境变量?

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
百草谷居士
帖子: 3006
注册时间: 2006-02-10 16:36
系统: ubuntu18.04/Win10
送出感谢: 19 次
接收感谢: 32 次
联系:

为什么无法export到环境变量?

#1

帖子 百草谷居士 » 2008-11-22 9:06

我想在脚本中通过export命令增加一个环境变量。比如下面的例子:

代码: 全选

#!/bin/bash
export VAR1='My test var.'
echo $VAR1
当我在shell下运行这个脚本的时候看样子是正常的,但是当我使用echo $VAR1命令时,却发现VAR1并没有作为环境变量被生成。
问题出现在哪里呢?
友帮拓,真难听。有没有接触官方的老大?给改了吧!
一直想找一个在linux下的Visual FoxPro/access桌面数据库。MUIBase还算是最相近的。
头像
cnkilior
论坛版主
帖子: 4979
注册时间: 2007-08-05 17:40
送出感谢: 0
接收感谢: 5 次

Re: 为什么无法export到环境变量?

#2

帖子 cnkilior » 2008-11-22 12:34

子shell和父shell
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星
送出感谢: 1 次
接收感谢: 0

Re: 为什么无法export到环境变量?

#3

帖子 xhy » 2008-11-22 16:37

假设你的脚本名字是 abc.sh

不要

代码: 全选

 ./abc.sh
这样运行

你可以

代码: 全选

source abc.sh
或者

代码: 全选

.     abc.sh
直接运行一个脚本,会启动一个子进程,在子进程中解释那段脚本,而子进程export的变量是无法传递给父进程的

使用source或者.运行脚本,不会在子进程中执行,而是直接在当前shell进程运行
目前负债150多万
wstoneh
帖子: 38
注册时间: 2008-09-01 15:57
送出感谢: 0
接收感谢: 0

Re: 为什么无法export到环境变量?

#4

帖子 wstoneh » 2008-11-28 21:31

3楼说的没错,使用source abc.sh
回复

回到 “Shell脚本”