linux 使用wget和header预期设置cmd

kse8i1jr  于 2023-02-11  发布在  Linux
关注(0)|答案(1)|浏览(157)

我有以下expect脚本

#!/usr/bin/expect -f

set SRCFILE /tmp/cert.zip
set SRC https://na.artifactory.swg-devops.com/artifactory/generic-local//latest/misc/copy_zips//cert.zip
set PASSWD XYZ

set cmd "wget --header \"Authorization: Bearer $PASSWD\" -O $SRCFILE $SRC"
eval spawn $cmd

问题是wget命令不起作用。当我在linux命令行上运行wget --header Authorization: Bearer XYZ -O /tmp/cert.zip https://na.artifactory.swg-devops.com/artifactory/generic-local//latest/misc/copy_zips//cert.zip时,它工作正常。我还尝试在expect命令行上运行该命令

expect1.1> spawn wget --header "Authorization: Bearer XYZ" -O /tmp/cert.zip https://na.artifactory.swg-devops.com/artifactory/generic-local//latest/misc/copy_zips//cert.zip

spawn wget --header Authorization: Bearer XYZ -O /tmp/cert.zip https://na.artifactory.swg-devops.com/artifactory/generic-local//latest/misc/copy_zips//cert.zip
2815

而且这个也很好用。
但是这个命令在expect脚本中不起作用。我尝试了以下替代方法,但似乎不起作用:

set cmd 'wget --header "Authorization: Bearer $PASSWD" -O $SRCFILE $SRC'

set cmd "wget --header "Authorization: Bearer $PASSWD" -O $SRCFILE $SRC"

我不知道我错过了什么与报价。

4c8rllxm

4c8rllxm1#

将命令放入列表中并使用扩展运算符

set cmd [list wget --header "Authorization: Bearer $PASSWD" -O $SRCFILE $SRC]
spawn {*}$cmd

或者像@ spexpect注解一样,根本不要将命令放在变量中。

相关问题