Nu shell 的自定义命令(函数)笔记

由于我经常使用 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] {
cd 'D:/xxx'
yt-dlp --format 'bestaudio[ext!=webm]' $url
}

最终就是写了一个函数,这样我们在 shell 里面执行 yda 后面需要一个参数。持久化的方法,我也是同样写到 env.nu 里面。

nu-shell-yda