У меня есть файл с разделителями табуляции, как это:
table_a "where id IN ($IDS)"
table_b "where fk_id IN ($IDS)"
table_c "where fk_id IN ($SOME_OTHER_IDS)"
И я пытаюсь написать такой скрипт:
IDS="1,2,3"
SOME_OTHER_IDS="4,5,6"
while read TABLE WHERECLAUSE
do
echo "$WHERECLAUSE"
mysqldump ... --where="$WHERECLAUSE"
done < 'myfile.txt'
Проблема в том, что, конечно, $IDS
не раскрывается и не интерпретируется при чтении из команды read
.
Кажется, что я могу сделать что-то в цикле, как:
WHERECLAUSE=`eval echo "$WHERECLAUSE"`
Но разве это по сути небезопасно использовать eval таким образом?
Есть ли лучший способ заменить $IDS
который избегает небезопасного использования eval
? Предпочтительно я ищу решение, которое поддерживает как OSX, так и Ubuntu.
Спасибо!