Функциональный блок FS_SHELL

Функциональный блок FS_SHELL выполняет одно или несколько удаленных команд в интерактивной оболочке.

Внимание: Системные команды могут повредить удаленную систему. Кроме того, существующие файлы могут быть перезаписаны без предупреждения.

Файловая система должна быть предварительно инициализирована с помощью FS_INIT. Все операции выполняются асинхронно для каждого созданного носителя.

Вход RUN

При положительном фронте выполняется указанная команда.

Вход DEV

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

Вход PATH

Указывает путь к каталогу на носителе. Путь соответствует пути файла Unix в формате UTF-8, если он поддерживается. Путь представлен следующим образом:

Папка/Подпапка

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

Вход CMD

Определяет все команды, которые должны быть выполнены. Все команды должны быть завершены символом конца строки. Например: "ls\n". Если не используется конец строки, команда, вероятно, не будет выполнена. Команды выполняются построчно после ответа от сервера.

После выполнения всех команд в конце следует отправить "exit\n", чтобы немедленно завершить соединение и вернуть значения. После этого не следует отправлять дополнительные команды, так как в противном случае выход ERROR будет установлен на TRUE.

Примечание: Если соединение завершается неожиданно и команда не была отправлена, выход ERROR устанавливается на TRUE.

Вход PTY

Определяет тип консоли (псевдотерминала). Для некоторых устройств этот параметр обязателен. Примеры: "vanilla", "exec", "vt100", "vt102", "ansi", "xterm" и т.д. Если значение не определено, используется "vanilla".

Значение "exec" выполняет запрос через SSH-команду операционной системы. Таким образом, используются более современные методы. Однако этот метод немного менее эффективен. Вход ENV устанавливается перед соединением, поэтому он может быть проигнорирован. Вход SIZE игнорируется при этом методе.

Если необходимо передать дополнительные параметры SSH, их можно добавить в новой строке после "exec". Параметры чувствительны к регистру и указываются так, как показано в следующем примере. Этот пример активирует алгоритм RSA для старых устройств.

exec
HostKeyAlgorithms=+ssh-rsa
PubkeyAcceptedAlgorithms=+ssh-rsa

Доступные параметры:

SSH-параметры для exec Пример значения
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
ConnectTimeout 10
ServerAliveInterval 30
ServerAliveCountMax 3

Примечание: Для получения дополнительной информации см. внешнюю документацию: https://linux.die.net/man/5/ssh_config (Английский)

Вход ENV

Определяет активные переменные окружения. Чтобы указать несколько переменных, можно определить их по одной на строку. Пример:

LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

Вход SIZE

Определяет размер терминала. По умолчанию он указывается в символах, но может быть также определен в пикселях. Например: "80x25" или "640x480px". Если значение не определено, используется "80x25".

Вход RECV_PT

Определяет тайм-аут для получения данных на команду в формате T#. Если не установлен тайм-аут, используется T#150ms. Если это значение недостаточно велико, вероятно, несколько команд будут выполнены во время вывода данных.

Вход TIMEOUT

Устанавливает тайм-аут в формате T# для выполнения всех команд. После достижения этого значения соединение завершается и возвращается значение. При этом ERROR устанавливается на TRUE. Тайм-аут оценивается после установки соединения и аутентификации. Если вход PTY установлен на "exec", то время выполнения оценивается для всего периода. Если не установлен тайм-аут, используется T#300s.

Выход DONE

Выход возвращает импульс при успехе, чтобы выполнить следующую операцию. Импульс происходит при завершении процесса, даже если произошла ошибка.

Выход RETURN

Возвращает результат команды при успешном выполнении. Значение сохраняется для последующего использования.

Примечание: Обратите внимание, что консоль форматирует вывод. Таким образом, могут содержаться управляющие символы или бинарные данные.

Выход RETERR

Возвращает результат команды при неудачном выполнении. При SSH также называется STDERR. Значение сохраняется для последующего использования.

Примечание: Обратите внимание, что консоль форматирует вывод. Таким образом, могут содержаться управляющие символы или бинарные данные.

Выход ERROR

В случае ошибки возвращает текст с сообщением об ошибке. Он FALSE, если ошибка не возникла. Состояние сохраняется для последующего использования.

Возможные причины:

  • Служба носителя не была запущена.
  • Хранилище не было инициализировано.
  • Учетные данные для входа недействительны.
  • Не удалось связаться с удаленным сервером.
  • Носитель не существует.
  • Указанный путь недействителен.
  • На носитель нельзя записывать.
  • Нет свободного места на носителе или носитель защищен от записи.
  • Соединение было неожиданно завершено, прежде чем все команды могли быть отправлены.
  • Достигнуто определенное время ожидания.

См. также