LINUX.ORG.RU

c-shell script


0

0

Есть список имен переменных
$ 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

★★★★★

Помочь тебе не смогу, а вот вопросик задам:

я не нашел что-то альтернативы в csh команде "read" в bash,

т.е. чтоб считывать. Есть ли такая вообще или нет? весь man csh обчитал - в пустую :(

anonymous
()

Жаль, что никто не ответил.

sdio ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.