너무 길어요.예를 들어 별칭(예: YouTube/스트리밍 URL)의 문자열을 어떻게 바꿀 수 있나요 alias mpvyt='yt-dlp <URL> -o - | mpv - '
?
저는 메자닌 스튜디오에 살고 있으며 M1 맥북을 워크스테이션(쓰기/편집)으로 사용하고 openbsd를 로컬 서버로 사용하는 오래된 노트북을 사용합니다. 난 거기서 음악을 틀어산부인과서버가 위층에 있으므로 내 데스크탑에 연결된 스피커로 방을 가득 채웁니다. 내 관리되는 라이브러리는 다음을 사용하여 잘 작동합니다.MPD그리고NCPCPP, 어렵지 않다는 것을 알았습니다mpv를 사용하여 YouTube 스트리밍 비디오 재생, Firefox 이후X 석영~에서 흘러나오다이종 발생의아무튼 너무 느립니다.
저는 일반적으로 사용되는 명령에 대한 단축키로 다양한 별칭 **[1]**을 사용합니다.이해하다 프로그래밍 기초하지만 저는 완전 초보자예요쉘/ksh88 구문. SSH를 사용하여 연결하는 obsd 서버에서 YouTube 비디오를 스트리밍하기 위해 짧은 명령을 사용하고 싶습니다. 아래: yt-dlp <URL> -o - | mpv - -force-seekable=yes
훌륭하게 작동하지만내가 어떻게 할 수 있니?alias mpvyt='yt-dlp %s -o - | mpv -' <URL>
그러면 전체 명령을 입력할 필요가 없나요?
내 생각엔 그것이 포함된 것 같아기본 문자열 대체 사용 크쉬 88 통사론나는 이것에 대해 아무것도 모른다 ...또는아마도 다음을 사용하여 가능한 한 "멀리" 이동해야 할 수도 있습니다.스니펫이라고도 불리는 작은 독립형 쉘 스크립트?한 단계 더 나아가 재생 목록을 스트리밍할 수 있을 뿐만 아니라 비디오와 오디오 스트림을 분리하여 워크스테이션 화면에서 비디오를 재생할 수 있다면 큰 이점이 될 것이며 검토하겠습니다.유틸리티 차량 문서이를 위해.
[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
...
기적적으로 작동합니다! 생각보다 쉽습니다. 문제가 해결되었습니다.