例子:
我有一个配置文件,我希望下面的值中包含日期
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