Пример .env
:
key1='do not put me in the environment'
key2=1231
filename=thisvaluechanges
key4="I hate being evaluated"
Вы хотите оценить только строку с filename
. Сначала проверьте, как вы можете выбрать эту строку, например,
grep "^filename=" /home/example/.env
# or
sed -n 's/^\s*filename\s*=\s*/filename=/p' /home/example/.env
Затем вы можете source
выделенную строку.
source <(grep "^filename=" /home/example/.env)
Когда имя файла является фиксированной строкой (без $()
это необходимо оценить), вы можете обойтись без source
:
cp $(grep "^filename=" /home/example/.env) /home/nope/temp.txt
Прежде чем поместить это в alias
, помните, что function
может делать все, что может alias
, и могу сделать больше. Вы «должны» прекратить использование alias
.
Если у вас есть три или четыре файла, например, filename1, 2, 3, 4, вы можете использовать функцию с аргументом:
cpf() {
if (( $# = 0 )); then
echo "Usage: cpf filenumber"
else
cp $(grep "^filename${1}=" /home/example/.env) /home/nope/temp.txt
fi
}
Вы можете вызвать функция с cpf 2
для filename2
.
Если вы хотите поместить имя файла в среду, вы можете изменить функцию
source <(grep "^filename${1}=" /home/example/.env)