Пример:
У меня есть файл конфигурации, в котором ниже я хочу указать дату в значении
cat conf.ini
path=/var/opt/[date]/yellow
Я хочу, чтобы мой скрипт foo
читал путь и заменял его датой, переданной в качестве аргумента скрипту.
./foo.sh 08/20/2015
Я хочу заменить дату в пути аргументом, указанным в сценарии.
После того как вопрос был изменен, и было неясно, что предназначено, 2-я часть моего ответа является ответом на эту версию Вашего вопроса.
Используя 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