使用变量获取配置值

使用变量获取配置值

例子:

我有一个配置文件,我希望下面的值中包含日期

cat conf.ini

path=/var/opt/[date]/yellow

我希望我的脚本foo读取路径并用作为脚本参数传递的日期替换。

./foo.sh 08/20/2015

我想用我在脚本中提供的参数替换路径中的日期。

答案1

一旦问题发生变化,并且含义不明确,第二部分我的答案是您的问题的版本。


但我会再试一次

使用awk

#!/bin/bash
path=$(awk -F= '/path/ {gsub (/\[date\]/,"'"$1"'",$2); print $2}' conf.ini)
echo $path

例子

% cat conf.ini 
path=/var/opt/[date]/yellow

% ./foo 08/20/2016
/var/opt/08/20/2016/yellow

第二部分

在脚本中使用awk名称foo,我不喜欢eval ;)

#!/bin/bash
source conf
path=/var/opt/$(awk -F= '/^'"$1"'/ {print $2}' conf)/yellow
echo "$path"

使用eval ;)在名为foo

#!/bin/bash
source conf
eval path=/var/opt/'$'"$1"/yellow
echo "$path"

例子

$ cat conf
date=2015-08-04

$ ./foo date
/var/opt/2015-08-04/yellow

相关内容