2011-04-19 89 views
0

我有一个运行并读取文本配置文件的应用程序。 这指向配置/输出等几个位置。读取/运行环境文本文件中的变量

是否可以在文本配置文件中使用环境变量而不是硬编码路径?

LOGFILEPATH = $ LOG_FILE_PATH VS LOGFILEPATH =/home/user中/日志

运行时,应用程序失败,因为它无法展开环境变量。 它将在应用程序运行之前从外壳中获取。

谢谢!

+0

只有在环境变量'LOG_FILE_PATH'在配置文件在该行之前宣布。也可能有一些延迟扩展的情况。但我没有意识到这一点,这取决于你的确切外壳,你还没有说明。 – 0xC0000022L 2011-04-19 12:36:41

回答

1

最近我在(bash)脚本中使用这样的:

#!/bin/bash 
# ... 
source config.file 
# ... 

config.file有线路是这样的:

export ORIG_PATH="${PATH:-.}:/bla/bla" 
export SOMESETTING="${SOMEVAR:-"somedefault"},somedata" 
... 

所以${parameter:-word}事工作很适合我:使用默认值,如果参数未设置或为空,则替换单词的扩展。否则,参数的值将被替换。(从man bash

HTH