Unix SSHLibrary—一个带有参数的shell脚本,存在代码127和错误';java:未找到命令';
使用Robotframework automation和ssh库,我试图在远程UNIX机器上执行一个带有一个参数(-a)的shell脚本 测试步骤如下:Unix SSHLibrary—一个带有参数的shell脚本,存在代码127和错误';java:未找到命令';,unix,ssh,robotframework,Unix,Ssh,Robotframework,使用Robotframework automation和ssh库,我试图在远程UNIX机器上执行一个带有一个参数(-a)的shell脚本 测试步骤如下: 登录到UNIX框 转到存在带参数(-a)的shell脚本的目录 执行shell脚本 请注意: 由于'SSHLibrary'关键字(如'Execute command'或'Write'和'Read'在一个shell中工作),因此我将传递多个用分号分隔的命令 在一系列命令中,我还尝试使用命令shopt login\u shell打开shell,但这
shopt login\u shell
打开shell,但这也不起作用。还请注意,当使用“Execute command”关键字执行命令时,shopt login_shell不会打开shell。它可以与“Write”关键字配合使用- 问题:
Write shopt login_shell
${Op_Shopt}= Read
${Op_rc} ${Op_err}= Execute Command cd /home/xyz/abc; ./shell_script.sh -a return_stderr=True
Write shopt login_shell; cd /home/xyz/abc; ./shell_script.sh -a
${Op_shell}= Read
在这里,login_shell被打开,但在shell脚本的某个地方,Execute Command关键字退出,代码为127,错误为“java:Command not found”
我尝试的方法2:
Write shopt login_shell
${Op_Shopt}= Read
${Op_rc} ${Op_err}= Execute Command cd /home/xyz/abc; ./shell_script.sh -a return_stderr=True
Write shopt login_shell; cd /home/xyz/abc; ./shell_script.sh -a
${Op_shell}= Read
在这里,login_shell没有打开,即使在这里,Execute Command关键字也会退出,代码为127,错误为“java:Command NOT found”。
正如下面提到的,我也尝试了使用关键字“Start Command”的相同方法,但仍然存在相同的问题
Start Command shopt login_shell; cd /home/xyz/abc; ./shell_script.sh -a
${Op_rc} ${Op_err}= Read Command Output return_stderr=True
有人能帮我解决这个问题吗?你能提供你正在执行的测试用例吗?请使用to
code
格式化以提高可读性。问题出在您的逻辑中的某个地方。SSH库为每个start命令或execute命令关键字打开新的shell(不寻找任何配置文件)。因此,请尝试在命令中添加“source~/.bash\u profile”或“source~/.bashrc”,因为这可能会设置$PATH变量(JAVA\u HOME没有那么重要)。