如何使用 Expect 运行 来自 URL 的文件?
How to run a file from URL using Expect?
在期望脚本中,我想下载一个文件并执行它。到目前为止,我已经尝试过这些选项:
尝试 1 - 只需下载并执行
#!/usr/bin/expect -f
spawn wget mysite.com/file.sh
spawn /bin/sh file.sh
/bin/sh命令在文件下载完成前执行
尝试 2 - 将内容通过管道传输到可执行文件
#!/usr/bin/expect -f
spawn /bin/sh <(curl -s mysite.com/file.sh)
我收到这个错误:
/bin/sh: <(curl: No such file or directory
send: spawn id exp6 not open
while executing
我尝试了几种不同的转义字符
尝试 3 - 使用 eval
#!/usr/bin/expect -f
spawn eval "$(/bin/sh <\(curl -s mysite.com/file.sh\))"
这给出了这个错误:
couldn't execute "eval": no such file or directory
while executing
我试过使用和不使用转义字符
system <args>
将参数传递给 sh
。因此可以在脚本执行后使用&&
运算符来执行脚本。
#!/usr/bin/expect -f
system wget mysite.com/file.sh && ./file.sh
或者如果您根本不想保存脚本:
#!/usr/bin/expect -f
system curl mysite.com/file.sh | /bin/sh
在期望脚本中,我想下载一个文件并执行它。到目前为止,我已经尝试过这些选项:
尝试 1 - 只需下载并执行
#!/usr/bin/expect -f
spawn wget mysite.com/file.sh
spawn /bin/sh file.sh
/bin/sh命令在文件下载完成前执行
尝试 2 - 将内容通过管道传输到可执行文件
#!/usr/bin/expect -f
spawn /bin/sh <(curl -s mysite.com/file.sh)
我收到这个错误:
/bin/sh: <(curl: No such file or directory
send: spawn id exp6 not open
while executing
我尝试了几种不同的转义字符
尝试 3 - 使用 eval
#!/usr/bin/expect -f
spawn eval "$(/bin/sh <\(curl -s mysite.com/file.sh\))"
这给出了这个错误:
couldn't execute "eval": no such file or directory
while executing
我试过使用和不使用转义字符
system <args>
将参数传递给 sh
。因此可以在脚本执行后使用&&
运算符来执行脚本。
#!/usr/bin/expect -f
system wget mysite.com/file.sh && ./file.sh
或者如果您根本不想保存脚本:
#!/usr/bin/expect -f
system curl mysite.com/file.sh | /bin/sh