То, что я хочу сделать, это создать несколько операторов SQL Informix и позже запустить их через скрипт Bash.
Вот что у меня пока есть (это работает), но оно предназначено для запуска из задания cron, поэтому оно выполняется только один день за раз:
echo "
update hst`date --date='yesterday' +%m%d%y`
set x = 'GARP'
where y in ('CRE', 'LAC', 'SRL', 'JAG', 'JNM', 'BIM')
and appl = '';
" > update_x_hst.sql
chmod 777 update_x_hst.sql
isql -s history_hst update_x_hst.sql
rm update_x_hst.sql
Я должен делать это таким образом, потому что система, с которой я работаю, создает таблицы каждый день, поэтому у меня будут hst070810, hst070910, hst071010 и так далее, в качестве моих таблиц, которые мне нужно обновить.
Я хочу сделать что-то, что создаст файл sql и затем запустит его, а затем иди делать это снова и снова в течение заданного числа раз в цикле for.
#!/bin/bash
for x in {1..11}
do
echo "
update hst`date --date='$x days ago' +%m%d%y`
set x = 'Complete'
where y = 1;
" > update_x_hst.sql
chmod 777 update_x_hst.sql
isql -s history_hst update_x_hst.sql
rm update_x_hst.sql
done
Проблема здесь в том, что он не хочет правильно читать переменную $ x, поэтому оператор не выполняется.
Есть идеи?