我有以下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"
我不知道我错过了什么与报价。
1条答案
按热度按时间4c8rllxm1#
将命令放入列表中并使用扩展运算符
或者像@ spexpect注解一样,根本不要将命令放在变量中。