Для своих нужд я написал дляББКП 1.8небольшие модули Args и HostArgs.
В случае написания с помощью Блекбокса классического консольного приложения, модуль Args позволяет свободно работать с параметрами командной строки, как это делалось в Паскале или Си.

## Код:
```
DEFINITION Args;

   (** Puts nth command line argument in s. Argument Nr. 0 is the application name. *)
   PROCEDURE GetParam (n: INTEGER; OUT s: ARRAY OF CHAR);

   (** Returns the total number of command line arguments, including argument Nr. 0. *
   PROCEDURE ParamCount (): INTEGER;

END Args.
```


## Код:
```
MODULE TestEnv;

IMPORT Args, Log;

PROCEDURE Do*;
VAR i, n: INTEGER;
   s: ARRAY 1000 OF CHAR;
BEGIN
   n := Args.ParamCount();
   Log.Int(n); Log.String(' parameters total.'); Log.Ln;
   FOR i := 0 TO n - 1 DO
      Args.GetParam(i, s);
      Log.Int(i); Log.String(' - "');
      Log.String(s); Log.Char('"'); Log.Ln
   END
END Do;

END TestEnv.

MODULE TestMain; IMPORT TestEnv; BEGIN TestEnv.Do END TestMain. (*Для запуска из консоли*)
```


Для компиляции под Линукс запускаю коммандер:
## Код:
```
Dev2Linker1.LinkElfExe Linux TestEnv := Kernel$+ Math Strings Files Log Dialog Console HostConsole HostArgs ConsLog TestEnv TestMain
```


## Код:
```
$ ./TestEnv hello world!
 3 parameters total.
 0 - "./TestEnv"
 1 - "hello"
 2 - "world!"
```


Файлы Args и HostArgs прилагаю (System/Mod/Args.odc и Host/Mod/Args.odc).