источник значения конфигурации с переменными [closed]

Пример:

У меня есть файл конфигурации, в котором ниже я хочу указать дату в значении

cat conf.ini

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

Я хочу, чтобы мой скрипт foo читал путь и заменял его датой, переданной в качестве аргумента скрипту.

./foo.sh 08/20/2015

Я хочу заменить дату в пути аргументом, указанным в сценарии.

0
задан 5 August 2015 в 17:01

1 ответ

После того как вопрос был изменен, и было неясно, что предназначено, 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

2-я часть

Используя 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
2
ответ дан 6 August 2015 в 03:01

Другие вопросы по тегам:

Похожие вопросы: