2013-06-27 2 views
2

У меня есть переменная, которую мы можем назвать largeVar и имеет следующее содержание:Как читать многострочную переменную по одной строке за раз?

var1="blah1" 
var2="blah2" 
var3="blah3" 

Так что, если я делаю printf "$largeVar" я получаю точное содержание выше. Однако мне нужно добавить эти vars в мою среду, не создавая файл свойств. Так что я пытаюсь сделать это:

for var in "$largeVar" 
do 
    eval "$var" 
done 

Но это только Eval в $largeVar и не в каждой строке. Так я тогда попытался это:

while cat "$largeVar" | read var 
do 
    printf "$var" 
done 

Это похоже на работу ... своего рода (я тестировал только с printf, чтобы увидеть, что произойдет), но последняя строка говорит echo : File name too long

Есть ли вообще делать то, что я Я пытаюсь это сделать?

+1

'cat '$ largevar" 'просто ищет FILE, имя которого начинается с' var1 = .... ' –

ответ

2

Вы можете просто сделать eval $largeVar, так как переменные окружения могут быть разделены пробелами в bash.