see*_*con 2 shell process tor polipo
我用pianobar播放器。但在启动它之前,我需要运行tor和polipo。两者都是连续的(一直运行直到被中断)。基本上我正在寻找的是一个单一的命令,它会产生tor和polipo处理(不需要它们的输出),然后在前台打开钢琴栏。
编辑:结果tor需要几秒钟才能启动,这就是为什么建议的解决方案起初不起作用。我发布这个以防有人遇到同样的问题:
function piano {
tor &
polipo &
sleep 3
pianobar &&
killall tor
killall polipo
}
Run Code Online (Sandbox Code Playgroud)
这就是 shell 脚本的用途;在只输入一个命令的同时运行多个命令。以下是一个简短的脚本,我相信它可以满足您的要求:
#!/bin/sh
tor & tor_pid=$!
polipo & polipo_pid=$!
sleep 5
pianobar
kill $tor_pid
kill $polipo_pid
Run Code Online (Sandbox Code Playgroud)
把它放在一个文件中,也许$HOME/local/bin/startpiano,让它可执行chmod +x $HOME/local/bin/startpiano,并添加$HOME/local/bin到PATH变量的末尾。
这也是 shell 函数的用途;执行逻辑上不同的任务。你可以像这样创建一个 shell 函数:
startpiano () {
tor & tor_pid=$!
polipo & polipo_pid=$!
sleep 5
pianobar
kill $tor_pid
kill $polipo_pid
}
Run Code Online (Sandbox Code Playgroud)
这将进入您的特定 shell 的启动文件之一。
编辑:对于编辑过的问题,我建议不要使用别名,因为现在任务变得有点太复杂了。不过,我将在此处保留有关别名的原始文本。
这也是别名的用途;做一些你不想一次又一次输入的简单事情。这是您为其设置别名的方式:
alias startpiano="polipo &; tor &; pianobar"
Run Code Online (Sandbox Code Playgroud)
这也将进入您的 shell 的初始化脚本之一。
这三种解决方案中的任何一种都可以让您输入
$ startpiano
Run Code Online (Sandbox Code Playgroud)
启动您需要的程序。
与 shell 函数和别名相比,shell 脚本的优势在于它不会为您的 shell 初始化文件增加更多的权重(除了将其位置附加到PATH变量的末尾之外 )。
shell 函数比别名更有优势,您以后可以向它添加命令行参数(也适用于脚本),并且它是可读的(并且在许多方面就像它自己的“脚本”一样)。
别名有效,但实际上,别名的唯一用途是用较短的东西替换非常简单的东西,以方便您的指尖,例如命令行标志ls等(这alias ls="ls -F"是我拥有的唯一别名)。
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |