Я могу запускать сценарии TCL на сервере Linux из неинтерактивной оболочки, созданной библиотекой JSch, используемой в программе java из среды Windows. Проблема в том, что у меня есть несколько сценариев, которым необходимо передавать определенные параметры во время выполнения сценария на основе промежуточного вывода сценария, и после ввода параметров выполнение сценария продолжается оттуда и далее. Но поскольку это не интерактивная оболочка, я не могу передать эти параметры во время выполнения. Есть ли способ заставить его работать? Я подумал о варианте, в котором я передам параметры как аргумент командной строки, но хотел узнать другой способ.
Передача параметров времени выполнения в сценарии TCL из неинтерактивной оболочки
Ответы (1)
Когда вы говорите «параметры», имеете ли вы в виду что-нибудь, что пользователь ввел бы в интерактивном сеансе в качестве входных данных для подсказок, представленных сценарием?
Если да, есть две возможности:
- Если сценарий не ожидает, что сеанс будет интерактивным, и просто считывает его ввод из своего стандартного потока ввода (например, используя
gets
), то просто подайте этот ввод на стандартный ввод процессаtclsh
, который интерпретирует ваш сценарий. Если сценарий действительно ожидает, что сеанс будет интерактивным (и отказывается просто принимать данные из своего входного потока), вам придется выделить псевдо-TTY для целевого процесса.
Я не знаком с
JSch
, но this, похоже, является вопросом (и ответом) о том, какJSch
выделить PTY.
person
kostix
schedule
15.04.2013
Да, параметры означают, что пользователь будет вводить в интерактивной оболочке. Поскольку сценарий ожидает, что сеанс будет интерактивным, я попытаюсь изучить возможность псевдо-TTY с использованием JSch. Спасибо. :) Скоро выложу результаты.
- person Peeyushpd; 15.04.2013