Подстановка переменных Bash при использовании файла аргументов командной строки - PullRequest
0 голосов
/ 17 июня 2019
FILEDIR=/home/myuserdir/audit
FILE=auditreport.csv

Указанная выше переменная находится в моем файле конфигурации.

У меня есть скрипт bash, который запускается с моим файлом конфигурации:

for file in `ls ${FILEDIR}/${FILE}`

Он видит мой путь, он идет в корневой каталог или каталог /, а не в мой каталог /home/myuserdir/audit. Но если я объявлю переменную в скрипте вместо файла конфигурации, она будет работать отлично, и будет найден правильный каталог. Что я делаю неправильно? К сожалению, мне нужно запустить скрипт с файлом конфигурации для дальнейшей настройки.

Я пытался обернуть утверждение в “”, но оно все равно не работает.

Ожидаемые результаты: я бы хотел, чтобы скрипт перешел на /home/myuserdir/audit вместо домашнего каталога.

1 Ответ

0 голосов
/ 17 июня 2019

Вы должны создать свой конфигурационный файл, а не только запустить его!

my.config

ConfigFileDir=/home/myuserdir/audit
ConfigFile=auditreport.csv

ваш скрипт

# source my.config at the top of your script
source my.config

# and use the variables
echo "$ConfigFileDir/$ConfigFile"
...