使用 karate.fork() 执行多个 linux 命令

Executing multiple linux commands using karate.fork()

是否可以使用 karate.fork() 添加多个命令?我尝试使用添加命令;或 && 分离,但第二个命令似乎没有被执行。

我试图在 shell 脚本上执行 bash 之前先 cd 到特定目录。

* def command =
"""
function(line) {
    var proc = karate.fork({ redirectErrorStream: false, useShell: true, line: line });
    proc.waitSync();
    karate.set('sysOut', proc.sysOut);
    karate.set('sysErr', proc.sysErr);
    karate.set('exitCode', proc.exitCode);
}
"""
* call command('cd ../testDirectory ; bash example.sh')

请注意,支持命令行参数数组而不是 line - args,因此也请尝试 - 例如类似于:

karate.fork({ args: ['cd', 'foo;', 'bash', 'example.sh'] })

但是是的,这可能需要一些调查。您始终可以尝试将所有命令放在一个应该有效的批处理文件中。

如果您能试用 1.0 RC 就更好了,因为可能已经添加了一些改进:https://github.com/intuit/karate/wiki/1.0-upgrade-guide