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

在fish shell开发yt-dlp函数时,如何将$argv转为单个字符串

在fish shell中将数组转换为单个字符串并修复ytaudio函数

在fish shell中,要将数组(比如函数接收的$argv参数数组)转换为单个空格分隔的字符串,直接用双引号包裹数组变量即可,也就是"$argv"。这个写法会自动把数组中的所有元素用空格连接成一个完整的字符串,正好满足yt-dlp的ytsearch:参数需要单个搜索关键词字符串的要求。

修改后的完整函数代码如下:

function ytaudio
    yt-dlp -f 251 -x ytsearch:"$argv" -o /tmp/yt-audio.opus
    mpv /tmp/yt-audio.opus
    rm /tmp/yt-audio.opus
end

补充说明

  • 当你执行ytaudio hello world这类带多关键词的命令时,"$argv"会被解析为hello world,yt-dlp会正确搜索包含这两个关键词的内容,而不会把它们当成独立的搜索项。
  • 如果需要用其他分隔符拼接数组(比如下划线),可以使用string join _ $argv的写法,但此场景下空格分隔是最优选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:31:02