由于我经常使用 yt-dlp 来下载视频或者音频,所以之前已经给 nu shell 添加了 alias,把 yt-dlp 缩短为 yt。
但是我平时喜欢把音频,直接下载到一个特定的目录里面。所以使用命令行,我需要先 cd xxxx,然后再执行 yt xxxx。
在 Mac 上面我使用的是 zsh,所以写一条 alias
alias ya="cd xxxx && yt-dlp --format 'bestaudio[ext!=webm]'" |
然后平时就执行 ya url,就可以下载到 url 对应的音频了。
但是我发现,在 nu shell 这边的 alias,没法这么用,即使我已经知道它不能使用 &&
,得使用 ;
才对。
在这边我也是折腾了不少时间,使用 alias 应该是没法达到我的目的了。
所以我寻找其它的方法——自定义命令 | Nushell
def yda [url:string] { |
最终就是写了一个函数,这样我们在 shell 里面执行 yda 后面需要一个参数。持久化的方法,我也是同样写到 env.nu 里面。