shell 带有curl的Bash语法似乎错误

liwlm1x9  于 2022-11-30  发布在  Shell
关注(0)|答案(1)|浏览(137)

我试图找出为什么下面的命令不工作,因为在一个UDM-Pro它工作完美。
第一个
输出如下:
Output picture
unifi-os shell 程序
我的意思是,我的意思是,我的意思是,我的意思是,https://api.github.com/repos/boostchicken-dev/udm-utilities/releases/latest,|“浏览器下载网址”/ {sub(/.:\s"/,"",$0); gsub(“"",“",$0);打印$2}')
我想我应该可以找到一个最新的文件夹。
curl:未指定URL!curl:有关详细信息,请尝试使用“curl --help”或“curl --manual
根目录@ubnt:/#
这个命令有什么问题吗?在另一个UDM-Pro上它工作得很好。
非常感谢!
我不知道我能改变什么?

ee7vknir

ee7vknir1#

您的问题是,您可能没有以与之前成功案例相同的方式使用该命令。
三重双引号是最大的问题所在。从逻辑上讲,您不能用同一类型的引号封装任何类型的引号(single或double),因此〉〉"""〈〈是不可能的!您需要使用**/"/的形式来代替,AWK gsub函数的文档在第一个字段中指定了regexp**。
此外,在此脚本中不需要使用sub。可以通过引用**$2**来避免这种情况。生成的赋值应如下所示:

PROJ_DEPOT="https://api.github.com/repos/boostchicken-dev/udm-utilities/releases/latest"
dl_url=$(curl -fsL "${PROJ_DEPOT}" | 
    awk '$0 ~ /"browser_download_url"/ { gsub(/"/, "", $0 ) ; print $2 }' )

相关问题