Bash Expect spawn:没有这样的文件或目录错误

Bash Expect spawn:没有这样的文件或目录错误,bash,expect,Bash,Expect,我正在编写一个Expect脚本,该脚本远程连接到服务器“server2”,并执行fileexists.sh,该脚本将查找文件是否存在于特定位置 Bash脚本-fileexists.sh如下所示: #/bin/bash 如果[-1新加坡元];然后 echo“存在非空文件。” 其他的 echo“文件不存在或为空。”若要检查远程主机,请执行此操作(我假设您登录到linux计算机,或使用GNUstat的计算机):未测试 send -- "stat -c '%s' '$rfile'\r" expect

我正在编写一个Expect脚本,该脚本远程连接到服务器“server2”,并执行fileexists.sh,该脚本将查找文件是否存在于特定位置

Bash脚本-fileexists.sh如下所示:

#/bin/bash
如果[-1新加坡元];然后
echo“存在非空文件。”
其他的

echo“文件不存在或为空。”
若要检查远程主机,请执行此操作(我假设您登录到linux计算机,或使用GNU
stat
的计算机):未测试

send -- "stat -c '%s' '$rfile'\r"

expect {
    -re {\r\n(\d+)\r\n} {
        puts "$rfile exists with size $expect_out(1,string)"
    }
    -gl {*No such file or directory*} {
         puts "$rfile does not exist"
    }
}

send "exit\r"
expect eof

要在远程主机上进行检查,请执行以下操作(我假设您正在登录到linux机器,或者使用GNU
stat
)的机器):未测试

send -- "stat -c '%s' '$rfile'\r"

expect {
    -re {\r\n(\d+)\r\n} {
        puts "$rfile exists with size $expect_out(1,string)"
    }
    -gl {*No such file or directory*} {
         puts "$rfile does not exist"
    }
}

send "exit\r"
expect eof

shell脚本是存在于远程计算机上,还是仅存在于本地计算机上?因为您调用它的方式只是检查本地计算机上文件的大小。shell脚本是存在于远程计算机上,还是仅存在于本地计算机上?因为您调用它的方式只是检查本地计算机上文件的大小。