Есть список имен переменных
$ cat test_vars
aa
bb
cc
dd
va
vb
vc
vd
_____________________________________________________
Есть тестовый скрипт в котором эти переменные определены
$ cat test.csh
#! /bin/csh
set aa = "aa 1"
set bb = "bb 2"
set cc = "cc 3"
set va = ( "va 1" "va 2" "va 3" "va 4" "va 5" )
set vb = ( "vb 1" "vb 2" "vb 3" "vb 4" "vb 5" )
set vc = ( "vc 1" "vc 2" "vc 3" "vc 4" "vc 5" )
#for debug
# set > test_set
# export variables
set _v = 'test_vars'
source ./save_part.csh
# the end
___________________________________________________________
Надо получить:
$ cat test_vars.save
set aa = "aa 1"
set bb = "bb 2"
set cc = "cc 3"
set va = ( "va 1" "va 2" "va 3" "va 4" "va 5" )
set vb = ( "vb 1" "vb 2" "vb 3" "vb 4" "vb 5" )
set vc = ( "vc 1" "vc 2" "vc 3" "vc 4" "vc 5" )
__________________________________________________________
Меня интересует реализация скрипта save_part.csh
$ cat save_part.csh
#! /bin/csh
# variable $_v is a filename of the variable's list
if ($?_v == 1) then
set _file = $_v
# # erase old file
cp /dev/null $_file.save
foreach _b (`cat $_file`)
[SKIP]
___________________________________________________________
Свою реализацию (убогая она) не привожу, чтобы на ложные идеи
не наталкивать.
Вопрос как такое сделать?
P.S. Зачем: есть огромный (для c-shell) скрипт >6500 строк,
который может по каким-либо причинам вывалиться с ошибкой
и приходится запускать все сначала. Логически он делится
на 8 частей, хочу сделать между ними сохранение состояния
скрипта (переменных и массивов), чтобы можно было после
ошибки продолжить с ближайшего checkpoint_a.
http://www.linux.org.ru/view-message.jsp?msgid=703868