shell脚本无法使用grepped值设置环境变量

时间:2015-04-13 12:28:55

标签: linux bash shell

在shell脚本中,我想从日志文件中grep一个值并设置为一个环境的值。在日志文件中,有一行如下:

SOME_PATH=/some/specific/path

在我的shell脚本中,我grep SOME_PATH关键字,我得到了上面的行并将其与=分开,但我现在能够设置环境变量:

line=`grep "SOME_PATH" /path/to/the/log.log`
path=${line##*=} 
export SOME_PATH="$path"  #I cannot change the environment variable with this line.

如果我只有下面的脚本,环境变量就会改变。

export SOME_PATH=/some/specific/path

1 个答案:

答案 0 :(得分:0)

导出的变量可以在从export编辑var的shell(脚本)中生成的进程中使用,也可以在source d脚本和export语句的其他脚本中使用。

第一种方式:

$ cat exp.sh
#!/bin/bash

export MYVAR="hi there"
bash
# or bash -c "echo here: $MYVAR"
第二种方式:

$ cat exp.sh
#!/bin/bash

export MYVAR="hi there"

$ cat imp.sh
#!/bin/bash

. exp.sh

echo $MYVAR

以下是另一种解释:advanced bash scripting guide