我想要做一个函数来运行这样的功能:
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' "https://www.youtube.com/watch?v=_OBlgSz8sSM"目前,在.zshrc,我一直在尝试
downloadyoutube(){
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' "$1"但是当我调用它时,它仍然希望我在URL周围添加引号。
相反,我想跑
downloadyoutube https://www.youtube.com/watch?v=_OBlgSz8sSM没有引号。
而不是
downloadyoutube "https://www.youtube.com/watch?v=_OBlgSz8sSM"有办法这样做吗?
发布于 2021-05-01 22:02:57
正如克莎拉南达所说,noglob是前进的道路;您可以按原样定义您的函数,然后使用alias来包含noglob:
downloadyoutube(){
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' "$1"
}
alias downloadyoutube="noglob downloadyoutube"无论如何,您试图对这些参数所做的事情是毫无意义的:youtube-dl默认设置它的时间已经很多年了;请阅读当前的man页面!
我要强调的是,克莎拉南达是对的:
',而不仅仅是",以免你想要一些特殊的角色成为问题,&,所以最好将您的shell配置为用\&自动替换字符串中粘贴的& (而不是行尾);我的zsh自动完成了这一操作,我想我应该对此负责。https://unix.stackexchange.com/questions/647628
复制相似问题