Команды SFK


    1        2        3        4        5        6        7        8        9        10    

Раздел 10. Help - Помощь
help chain | help chars | help colors | help compile | help nocase | help office | help options | help patterns | help select | help shell | help unicode | help var | samp |

Help:   Рус   |   Eng        

Команда: help chain
Ссылка на цепочку команд sfk:

   несколько команд могут быть объединены в так называемую «цепочку команд».
   это делается путем добавления имен команд с префиксом «+», например:

   sfk список документов .txt +ffilter -+foo
      "list" создает список имен файлов и передает его в "filefilter".
      ffilter считывает содержимое этих файлов в поисках слова «foo».

   типы данных цепочки
      от одной команды к другой могут передаваться три типа данных:

         - списки имен файлов.
         - незашифрованные текстовые записи (строки).
         - поток текстовых или двоичных данных.

      вывод зависит от команды. например, sfk select производит
      списки имен файлов, фильтр sfk создает простые текстовые записи, xex/xed может
      создавать потоки текстовых или двоичных данных.

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

         +texttofilenames или +ttf
         +filenamestotext или +ftt

      однако большинство команд sfk пытаются выполнять такие преобразования автоматически.

   использование цепочек данных между командами
      sfk cmd1 ... +тогда cmd2 не передает данные в cmd2,
                                выводит вывод cmd1 на терминал.
      sfk ... +toterm выгружает текущее содержимое цепочки на терминал.
      sfk ... +tofile outfile выгружает содержимое цепочки в файл outfile.
      sfk ... +tovoid +cmd2 не передает данные в cmd2,
                                молча отбрасывает текст цепочки cmd1.
      во всех случаях цепочка очищается. если следует другая команда,
      он не получит никаких входных данных от цепочки.

   нет туннелирования данных
      данные цепи могут быть переданы только
      - из команды создания данных, такой как +echo mytext
      - непосредственно к следующей команде
        если он потребляет данные, такие как +setvar myvar
      - но не через не-потребитель, например +tell othertext
      плохой пример:
        sfk echo mytext +скажи привет +setvar a
          останавливается с ошибкой в setvar: нет данных цепочки
      хороший пример:
        sfk echo mytext +setvar a +сказать привет +getvar
          mytext сохраняется, привет печатается

      другими словами, в цепочке команд, например:
      sfk cmd1 +cmd2 +cmd3 +cmd4 +cmd5
      невозможно отправить данные из cmd1 в cmd3/4/5
      если cmd2 не использует никаких цепочек данных (например, if, tell).
      начиная с sfk 1.9.3 этот обход cmd2 отключен
      чтобы избежать конфликтов из-за нежелательных данных цепочки в cmd3/4/5.
      единственное исключение: cmd1 +имя метки +cmd2
      используйте глобальную опцию -keepdata или установите переменную среды
         установить SFK_CONFIG=сохранить данные
      для поведения sfk 1.9.2, которое было непоследовательным
      и работал только с некоторыми командами.

   использование данных цепочки с call/label/end
      sfk ... +call myfunc не передает данные цепочки в myfunc
      sfk ... +tcall myfunc передает текстовые данные в myfunc
      sfk ... +fcall myfunc передает имена файлов в myfunc
      sfk label ... +end не возвращает данных цепочки
      sfk label ... +tend возвращает текстовые данные
      sfk label ... +fend возвращает список имен файлов

   если цепочка останавливается с «нет файлов, останавливаясь на x»:

      это означает, что команда x ожидает список имен файлов,
      но предыдущая команда ничего не дала.
      тогда у вас есть три варианта:

      - используйте +then x, если команда x никогда не должна получать
        имена файлов из предыдущей команды.

      - или добавить -keepchain к предыдущей команде, или
        непосредственно после sfk, чтобы принудительно выполнить команду x.

      - или используйте -nonote, чтобы подавить сообщение "нет файлов".

   объем и время жизни опционов
      большинство параметров действительны только для команды, в которой они указаны.
      если в цепочке следует другая команда, опция сбрасывается.
      но некоторые параметры также могут быть указаны в глобальной области.
      подробнее об этом читайте в разделе «Параметры справки sfk».

   глобальные параметры
      -tracechain получить подробный вывод во время шагов sfk
                    через цепочку команд

   больше в Книге СФК
      книга SFK содержит длинные примеры с вводом,
      вывод, сценарий и подробные пояснения к командам.
      введите "sfk book" для получения дополнительной информации.

   смотрите также
      Пакет sfk создает пример скрипта
      sfk help var как использовать переменные sfk
      сценарий sfk о сценариях sfk
      вызов sfk, вызывающий функцию в скрипте
      sfk label возможные варианты с лейблом
      sfk, если условное выполнение
      sfk перейти к локальной метке
      sfk для повторения команд n раз
      sfk загрузить загрузить текст или данные для цепочки