私はpianobar
プレーヤーを使用します。しかし、始める前にtor
とを実行する必要がありますpolipo
。どちらも連続しています(中断されるまで実行)。基本的に私が探しているのは、(出力を必要とせずに)作成して処理し、フォアグラウンドtor
でピアノバーを開く単一のコマンドです。polipo
編集:結果のtor
開始に数秒かかるため、提案されたソリューションは最初は機能しません。もしかしたら同じ問題があった方はいらっしゃると思います。
function piano {
tor &
polipo &
sleep 3
pianobar &&
killall tor
killall polipo
}
答え1
これがシェルスクリプトの目的です;複数のコマンドを実行するには、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
}
これは特定のシェルの起動ファイルの1つに移動されます。
編集する:編集された質問の場合、操作は複雑すぎるため、エイリアスを使用しないことをお勧めします。しかし、別名の原文はそのままにします。
これは別名の目的でもあります。;繰り返し入力したくない単純な操作を行います。エイリアスを設定する方法は次のとおりです。
alias startpiano="polipo &; tor &; pianobar"
これはシェルの初期化スクリプトの1つにも表示されます。
これら3つの解決策のいずれかを使用すると、次のように入力できます。
$ startpiano
必要なプログラムを始めてください。
シェル関数とエイリアスと比較してシェルスクリプトの利点は、シェル初期化ファイルに重みを追加しないことです(その場所を変数の末尾に追加することを除く
PATH
)。シェル関数には、エイリアスと比較して後でコマンドライン引数を追加することができ(スクリプトでも機能します)、読み取ることができるという利点があります(そして多くの点で独自の「スクリプト」のように動作します)。
エイリアスは機能しますが、実際にエイリアスの唯一の用途は、コマンドラインフラグなどの非常に単純なものを指先でより便利な短いものに置き換えることです
ls
(alias ls="ls -F"
これが私が持っている唯一のエイリアスです)。
答え2
これを使用するシェル.profile
に.bashrc
入れてください。.zshrc
function mycommand {
tor &
polipo &
planobar
}
今ちょうど走ってくださいmycommand