Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix SSHLibrary—一个带有参数的shell脚本,存在代码127和错误';java:未找到命令';_Unix_Ssh_Robotframework - Fatal编程技术网

Unix SSHLibrary—一个带有参数的shell脚本,存在代码127和错误';java:未找到命令';

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,但这

使用Robotframework automation和ssh库,我试图在远程UNIX机器上执行一个带有一个参数(-a)的shell脚本

测试步骤如下:

  • 登录到UNIX框
  • 转到存在带参数(-a)的shell脚本的目录
  • 执行shell脚本
  • 请注意:

  • 由于'SSHLibrary'关键字(如'Execute command'或'Write'和'Read'在一个shell中工作),因此我将传递多个用分号分隔的命令

  • 在一系列命令中,我还尝试使用命令
    shopt login\u shell
    打开shell,但这也不起作用。还请注意,当使用“Execute command”关键字执行命令时,shopt login_shell不会打开shell。它可以与“Write”关键字配合使用

  • 以下用于检查自动化shell中是否加载了JAVA的命令返回正确的输出(JAVA路径)

    写$JAVA_HOME ${Op_java}=Read

    • 问题:
  • 登录到UNIX框后,执行robotframework测试步骤失败,退出代码为127,错误为“java:command not found”

    我尝试的方法1:

    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没有那么重要)。