Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.LINUX
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.LINUX с датами от 24 Jan 02 06:01:34 до 11 Mar 24 23:35:09, всего сообщений: 8277
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 7745 из 8277 ========================================= RU.LINUX =
От   : Eugene Grosbein                  2:5006/1           30 Jan 22 20:46:48
Кому : Nil A                                               30 Jan 22 20:46:48
Тема : Re: Описание к эхам
FGHI : area://RU.LINUX?msgid=grosbein.net+a289acb1
На   : area://RU.LINUX?msgid=2:5015/46+61f43baa
= Кодировка сообщения определена как: IBM866 =================================
==============================================================================
28 янв. 2022, пятница, в 21:37 NOVT, Nil A написал(а):

NA> Видишь, если ты делаешь на скриптах, то у тебя образуется много врЕменных
NA> файлов, где ты хранишь промежуточные результаты вычислений.

Во-первых, в этом нет ничего плохого, а для долго работающих
задач с крупными файлами это даже хорошо, так как позволяет
прерывать работу и продолжать её с прерванного места,
даже после ребута, а не начинать всё с начала.

Во вторых, временные файлы совершенно необязательны,
в шелле ты не ограничен количеством одновременно обрабатываемых потоков,
пока памяти хватает.

Hапример, у меня есть скрипт с кодом такого вида:

# Создаём список из некоторых снапшотов файловой системы
# и вычисляем место, занимаемое ими суммарно
makelist() {
  local sum

  sum=0
  for ...
  do
    ...
    sum=$(($sum + ...))
    echo ...
  done
  # передаём вычисленную сумму из сабшелла родительскому
  echo $sum >&3
}
...
# Создаём FIFO для сабшелла и открываем его как третий поток
fifo=/var/run/$(basename $0).fifo
rm -f $fifo && mkfifo $fifo && exec 3<>$fifo || exit 1
trap "rm -f $fifo" EXIT # удалить поток при аварийном или нормальном завершении

# Создаём и сортируем список
makelist | sort -rn -k 1,1 | {
  read total <&3 # принимаем сумму от сабшелла через FIFO
  ...
}

Языковые возможности шелла достаточно богаты,
не надо бояться их использовать.

Eugene
--
И у священных источников живут алчные монахи. (Дхарма)
--- slrn/1.0.3 (FreeBSD)
* Origin: RDTC JSC (2:5006/1@fidonet)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.048228 секунды