저는 pianobar
플레이어를 사용합니다. 하지만 시작하기 전에 tor
및 를 실행해야 합니다 polipo
. 둘 다 연속적입니다(중단될 때까지 실행). 기본적으로 내가 찾고 있는 것은 (출력 필요 없이) 생성 tor
및 처리한 다음 전경에서 피아노 바를 여는 단일 명령입니다.polipo
편집: 결과가 tor
시작되는 데 몇 초가 걸리므로 제안된 솔루션이 처음에는 작동하지 않습니다. 혹시 같은 문제가 있으신 분 계실까봐 이렇게 글을 남깁니다.
function piano {
tor &
polipo &
sleep 3
pianobar &&
killall tor
killall polipo
}
답변1
이것이 쉘 스크립트의 목적입니다; 여러 명령을 실행하려면 하나의 명령만 입력하면 됩니다. 다음은 귀하가 찾고 있는 작업을 수행한다고 생각되는 짧은 스크립트입니다.
#!/bin/sh
tor & tor_pid=$!
polipo & polipo_pid=$!
sleep 5
pianobar
kill $tor_pid
kill $polipo_pid
파일에 넣고 를 $HOME/local/bin/startpiano
사용하여 실행 가능하게 만들고 변수 끝에 chmod +x $HOME/local/bin/startpiano
추가하십시오 .$HOME/local/bin
PATH
이는 쉘 함수의 목적이기도 합니다.;논리적으로 구별되는 작업을 수행합니다. 다음과 같은 쉘 함수를 만들 수 있습니다.
startpiano () {
tor & tor_pid=$!
polipo & polipo_pid=$!
sleep 5
pianobar
kill $tor_pid
kill $polipo_pid
}
이는 특정 쉘의 시작 파일 중 하나로 이동됩니다.
편집하다: 편집된 질문의 경우 작업이 이제 너무 복잡해지기 때문에 별칭을 사용하지 않는 것이 좋습니다. 하지만 별칭에 대한 원문은 그대로 두겠습니다.
이것은 별칭의 목적이기도 합니다.; 반복해서 입력하고 싶지 않은 간단한 작업을 수행합니다. 별칭을 설정하는 방법은 다음과 같습니다.
alias startpiano="polipo &; tor &; pianobar"
이는 쉘의 초기화 스크립트 중 하나에도 나타납니다.
이 세 가지 솔루션 중 하나를 사용하면 다음을 입력할 수 있습니다.
$ startpiano
필요한 프로그램을 시작하세요.
쉘 함수 및 별명에 비해 쉘 스크립트의 장점은 쉘 초기화 파일에 더 이상 가중치를 추가하지 않는다는 것입니다(해당 위치를 변수 끝에 추가하는 것 제외
PATH
).쉘 함수는 별칭에 비해 나중에 명령줄 인수를 추가할 수 있고(스크립트에서도 작동) 읽을 수 있다는 장점이 있습니다(그리고 여러 면에서 자체 "스크립트"처럼 동작합니다).
별칭은 작동하지만 실제로 별칭의 유일한 용도는 명령줄 플래그 등과 같이 매우 간단한 것을 손끝에 더 편리한 짧은 것으로 바꾸는 것입니다
ls
(alias ls="ls -F"
이것이 제가 가진 유일한 별칭입니다).
답변2
이것을 사용하는 쉘 .profile
에 .bashrc
넣으 십시오..zshrc
function mycommand {
tor &
polipo &
planobar
}
이제 그냥 달리세요mycommand