在期望脚本中,我想下载一个文件并执行它。到目前为止,我已经尝试过这些选项:
尝试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-使用评估
#!/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
我尝试了是否使用转义字符
答案 0 :(得分:1)
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