Процесс
Здесь описаны операторы и функции для работы с процессами и приложениями. Функции Args и ArgCount работают с командной строкой любого формата. Для корректной работы остальных Arg.. функций необходимо, чтобы командная строка имела следующий формат.
CmdLine = [ CmdOptions ] ["-"] [ CmdParameters ]
CmdParameters = { CmdParameter }
CmdParameter = ParamWithoutSpace | "Param With Spaces" | 'Param With Spaces'
CmdOptions = {CmdOption}
CmdOption = "-" | "--" {letter} [ CmdOptionValue | CmdOptionValues ]
CmdOptionValue = "=" | ":" CmdParameter
CmdOptionValues = " " CmdParameters
-p="my value" --flag - one two three
-i:10 -n:Bob "one par" two three
--ext "*.txt" .js .html -o=/home/ak/dest /home/ak/in1 /home/ak/in2
Operator | Result | Description |
$ command line | | Запустить командную строку. |
str = $ command line | | Запустить командную строку и возвратить её вывод. |
Функция Arg возвращает значение параметра с указанным именем. Если параметр не был указан при запуске скрипта, то возвратится пустая строка. В имени параметра можно не указывать начальный символ -.
Функция Arg возвращает значение параметра с указанным именем name. Если параметр не был указан при запуске скрипта, то возвратится значение def. В имени параметра можно не указывать начальный символ -.
Функция Arg возвращает числовое значение параметра с указанным именем name. Если параметр не был указан при запуске скрипта, то возвратится число def. В имени параметра можно не указывать начальный символ -.
Функция ArgCount возвращает количество параметров командной строки с которыми был запущен скрипт.
Функция Args возвращает список всех параметров и опций командной строки с которыми был запущен скрипт.
Функция Args возвращает список значений параметра с именем name. В имени параметра можно не указывать начальный символ -.
// --ext .txt .js .html -o=/home/ak/dest /home/ak/in1 /home/ak/in2
list = Args(`--ext`)
// list == [.txt, .js, .html]
Функция ArgsTail возвращает список параметров командной строки после опций. Можно явно указать начало таких параметров с помощью -.
// --ext .txt .js .html -o=/home/ak/dest /home/ak/in1 /home/ak/in2
list = ArgsTail() // list == [/home/ak/in1, /home/ak/in2]
// -i=false - val0 -value1 "value 2"
list = ArgsTail() // list == [val0, -value1, value 2]
Функция IsArg возвращает true, если в командной строке имеется опция с указанным именем. В противном случае, возвращается false. В имени параметра можно не указывать начальный символ -.
Функция Open открывает файл, директорию или URI адрес приложением по умолчанию для объектов данного типа. Скрипт не ожидает завершения работы.
Функция OpenWith открывает файл, директорию или URI адрес в указанном приложении. Скрипт не ожидает завершения работы.
Опциональные параметры
- buf stdin - буфер, который будет передан приложению как стандартный ввод.
- buf stdout - буфер, в который будет записан стандартный вывод приложения.
- buf stderr - буфер, в который будет записан стандартный вывод ошибок приложения.
Функция Run запуcкает указанную программу cmd c параметрами и ожидает её окончание. Дополнительно, вы можете переопределить стандартный ввод и вывод.
buf dirout
Run("dir", stdout: dirout)
Run("bash", stdin: buf(
|`echo "dirs"
#comment
echo "%{str(dirout)}"`
))
Функция SplitCmdLine разбирает входящую строку с параметрами командной строки и возвращает массив параметров.
run str {
return SplitCmdLine(`param1 "second par" "qwert\"y" 100 'oo ps'
-lastparam`).Join(`=`)
}
// returns param1=second par=qwert"y=100=oo ps=-lastparam
Опциональные параметры
- buf stdin - буфер, который будет передан приложению как стандартный ввод.
Функция Start запуcкает указанную программу cmd c параметрами и выполняет скрипт дальше. Дополнительно, вы можете передать буфер в качестве стандартного ввода.
Start("echo", "hello, world!")
Start("bash", stdin: buf(
|`./myscript1.sh
./myscript2.sh`
))
Last modified 3yr ago