太长了;博士如何在别名中替换字符串(即 youtube/streaming url),例如 alias mpvyt='yt-dlp <URL> -o - | mpv - '
?
我住在一个夹层工作室,使用 M1 macbook 作为工作站(写作/编辑),使用我的旧笔记本电脑使用 openbsd 作为本地服务器。我从那播放音乐OBSD服务器在楼上,因此通过插入的扬声器充满了整个房间到我的桌面。我的托管库可以很好地使用MPD和NCPCPP,我才发现这并不难使用 mpv 播放 YouTube 流视频,自从火狐浏览器X石英流自异种无论如何都太慢了。
我使用各种不同的别名**[1]**作为常用命令的快捷方式,并且理解 编程基础知识但我是一个绝对的初学者shell/ksh88 语法。我想使用一个简短的命令从我使用 ssh 连接的 obsd 服务器流式传输 YouTube 视频。以下: yt-dlp <URL> -o - | mpv - -force-seekable=yes
效果很好,但是我怎样才能做类似的事情alias mpvyt='yt-dlp %s -o - | mpv -' <URL>
这样我就不必输入完整的命令?
我想这涉及到使用基本字符串替换 克什88 句法我对此一无所知......或者也许我需要尽可能“远”地使用一个小的独立 shell 脚本又名片段?更进一步,如果我可以流式传输播放列表,以及分离视频和音频流,这样我就可以在工作站屏幕上播放视频,那将是一个很大的好处,我将研究多用途车文档为了这。
[1](您可以跳过这个不相关的代码块,我只是复制粘贴我的终端输出来吹嘘我的网络和别名)
Last login: Tue Oct 31 06:54:34 on ttys002
sylvain@sylvainmac ~ % more /etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
#192.168.1.254 box
192.168.1.1 srv
#192.168.1.11 lap
192.168.1.21 mac
192.168.1.51 droid
sylvain@sylvainmac ~ % grep alias .zprofile
alias u='brew update && brew upgrade ; sudo port selfupdate && sudo port upgrade outdated' #update command
alias z='ncmpcpp'
alias srvsh='ssh sylvain@srv'
alias srvx='ssh -X sylvain@srv' #used from xquartz, deprecated
alias srvm='sshfs sylvain@srv: ~/srv'
alias sic='sic -n sylvainsab'
alias l='ls'
alias la='ls -a'
alias ll='ls -l'
alias lla='ls -la'
sylvain@sylvainmac ~ % srvsh
sylvain@srv password:
Last login: Tue Oct 31 06:56:06 2023 from 192.168.1.21
OpenBSD 7.4 (GENERIC.MP) #0: Sun Oct 22 12:13:42 MDT 2023
Welcome to OpenBSD: The proactively secure Unix-like operating system.
Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.
$grep alias .kshrc
alias l='ls -F'
alias ll='ls -l'
alias la='ls -a'
alias lla='ls -Al'
alias t='tmux attach'
alias z='ncmpcpp'
alias fxr='firefox-esr -P remote &' #used with xquartz, deprecated
alias n='doas umount /mnt'
alias u='doas pkg_add -Uu && doas syspatch && doas fw_update' #update command
alias macm='doas sshfs -o idmap=user,allow_other,uid=1000,gid=1000 sylvain@mac: ~/mac'
alias rmds='find . -iname *.DS_Store -exec rm {} \;'
alias mic_on='doas sysctl kern.audio.record=1'
alias mic_off='doas sysctl kern.audio.record=0'
alias cam_on='doas sysctl kern.video.record=1'
alias cam_off='doas sysctl kern.video.record=0'
alias ytdl='yt-dlp --prefer-free-formats -f bestvideo+bestaudio --audio-quality 0 -o "%(title)s-%(id)s.%(ext)s"'
$^D
Connection to srv closed.
sylvain@sylvainmac ~ %
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
[Opération terminée]
答案1
$sed -n 9p ~/.kshrc
mpvyt () { yt-dlp "$1" -o - | mpv - --force-seekable=yes ; }
$mpvyt youtu.be/8I_vQHbmmaY
...
奇迹般有效 !这比我想象的要简单。谢谢,问题解决了。