передача параметров в удаленную оболочку - PullRequest
0 голосов
/ 08 февраля 2010

Мне нужно передать параметр в удаленный скрипт бобовой оболочки, который запускается через

java -cp bsh-2.0b4.jar bsh.Remote http://10.0.0.1/beanshell script.bsh p1 p2 p3

вызов.

Возможно ли как-то прочитать параметры 'p1', 'p2' и 'p3' из script.bsh?

p.s. Локальные параметры, проходящие через bsh.args, работают нормально, но их невозможно использовать с удаленными сценариями.

1 Ответ

0 голосов
/ 08 февраля 2010

Полагаю, вы используете библиотеку beanshell . Согласно источникам, сделать это невозможно: утилита принимает только 2 аргумента: URL и имя локального скрипта. Он даже не поддерживает несколько имен сценариев, как он утверждает.

public class Remote
{
    public static void main( String args[] ) throws Exception
    {
          if ( args.length < 2 ) {
                   System.out.println("usage: Remote URL(http|bsh) file [ file ] ... ");
                   System.exit(1);
          }
          String url = args[0];
          String text = getFile(args[1]);
          int ret = eval( url, text );
          System.exit( ret );
    }

Также серверная сторона должна знать о переданных аргументах.

Выход для тебя:

  1. Создайте шаблон сценария, в котором вы подставите аргументы для сценария и сохраните замещающий сценарий в temp dir, прежде чем перейти к bsh.Remote
  2. Создать удаленный файл, из которого скрипт может читать аргументы. Вам нужно дополнительное общение с удаленным сайтом, чтобы загрузить этот файл перед вызовом bsh.Remote.
...