Что означает строки сценария bash, начинающиеся с # $?

Я нашел этот bash скрипт на GitHub, который я хочу использовать для своей собственной работы. У меня следующий вопрос: что означают строки со 2 по 5? Это просто комментарии или они служат какой-либо цели?

#!/bin/bash
#$ -l h_rt=72:00:00
#$ -V
#$ -N index_calc
#$ -j y

source ~/modules.sh

cd $1

l_file=`find . -name 'L*stack' -type f`
for l in $l_file; do
    echo "Running on file:"
    echo $l
      extract=${l:0:45}
    name=${extract}_index.tif
    echo "Name of index stack:"
    echo $name
    echo "Executing code..."
    ~/Documents/misc/spectral/transforms.py \
    -v $l $name evi ndvi nbr ndmi 

done

echo "Done!"
13
задан 5 May 2018 в 12:27

1 ответ

Начало строк #$ опции для qsub, команда раньше отправляла задание кластеру SGE, система планирования, объясненная в этом readme:

Используя BIMSB (скоро, чтобы быть названной МАКСОМ) кластерная среда подобна использованию сред unix/linux для Вашего представления задания (например, запущение Ваших скриптов или другого программного обеспечения). Различие - то, что необходимо указать необходимые ресурсы заранее. Кластером управляет SGE (программное обеспечение Механизма Сетки Sun), который организует очереди и ресурсы. Этот вид системы планирования необходим, когда ограничено, вычислительные ресурсы совместно используются многими. И, было бы полезно, если Вы выполняете выравнивание для нескольких образцов и хотите распределить те задачи (задания) через несколько машин или центральных процессоров, или при выполнении статистических моделирований, который должен работать на нескольких центральных процессорах в течение долгого времени. Для этих случаев и более подобный, просто необходимо отправить сценарий задания (который является сценарием оболочки), и Механизм Сетки Sun будет заботиться об остальных (как долго, поскольку нет никакой ошибки в сценарии).

SGE сделает "планирование задания". Это означает, что можно отправить все задания, и SGE поставит их в очередь и выполнит их, когда ресурсы, которые Вы запросили, станут доступными. SGE также достигнет "выравнивания нагрузки", где задания будут распределены так, чтобы определенные узлы не становились перегруженными. Кроме того, SGE позволит Вам делать "контроль задания и учет", который будет полезен, когда Вы захотите проверить, работает ли Ваше задание, и если это перестало работать, это поможет Вам понять то, что пошло не так, как надо.

Синтаксис qsub команда объяснена на ее странице справочника, Ваш сценарий использует следующие опции:

  • -l h_rt=<hh:mm:ss> – укажите максимальное время выполнения (часы, минуты и секунды)
  • -V – передайте все переменные среды заданию
  • -N <jobname> – укажите название задания. Это, которое Вы будете видеть, когда Вы будете использовать qstat, проверять состояние Ваших заданий.
  • -j y[es]|n[o] – указывает, объединяется ли поток стандартной погрешности задания в поток стандартного вывода

Как, Как отправить, задание с помощью qsub объясняет, что можно установить qsub опции непосредственно в сценарии в строках, которые начинаются #$. Это альтернатива передаче их с qsub команда на командной строке.

19
ответ дан 23 November 2019 в 03:18

Другие вопросы по тегам:

Похожие вопросы: