You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac下如何将wget与AWS Lambda的URL生成命令串联执行?

命令合并失败原因及解决办法

我想通过aws lambda get-function获取Lambda函数源代码的URI,再用wget下载对应压缩包。分开执行以下命令完全正常:

$ aws lambda get-function --function-name my-function --query 'Code.Location'
https://prod-foo/somelongawsuri

$ wget -O somefile.zip https://prod-foo/somelongawsuri
Downloaded

但尝试合并成单条命令时失败了,我写的错误命令是:

url=$echo(aws lambda get-function --function-name my-function --query 'Code.Location') | wget $url

错误原因

  • 变量赋值语法错误:正确的命令替换应该用$(command),而非$echo(command)这种错误写法
  • 管道符使用逻辑错误:管道的作用是传递前一个命令的输出内容,这里错误地试图用它传递未定义的变量
  • 执行顺序错误:wget $url会在变量$url完成赋值前就执行,导致调用时变量为空

可行的合并命令

反复尝试后,以下命令可以正常工作:

aws lambda get-function --function-name myfunction --query 'Code.Location' | xargs wget

如果需要指定下载后的文件名,可以调整为:

aws lambda get-function --function-name myfunction --query 'Code.Location' | xargs -I {} wget -O somefile.zip {}

内容的提问来源于stack exchange,提问作者Lester Gray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 19:55:03