Backgroundでmakeしたいじゃんね。
ちょっとしたパッケージなら気にならないけど、TeX関係とかPHPとかになってくるとmake installする時間は馬鹿にならない。その間ずっと画面使えないのは辛いよね。
screenすれば良いけど、screenの無い環境でmakeしたいときはどうする?
裏でmake installしてしまおう。
# make install &
↑とりあえずバックグラウンド実行する方法だけど、これじゃ駄目。画面に文字が出力されるのが邪魔でしょうがない。
# make install > hoge &
↑じゃあリダイレクトすれば解決するはずー、とリダイレクトしてみても文字は出力される。なぜ?
それはこれらのメッセージが標準出力ではなく標準エラー出力に出されているからなのだー。
だからこれらの文字を消そうと思ったら標準エラー出力の出力先も標準出力と同じにしなければならない。
で、それをしてくれるのが 2>&1 という書き方。ファイルディスクリプタ2番(標準エラー出力)の出力先を、ファイルディスクリプタ1番(標準出力)の出力先と同じにしてくれる。
# make install > hoge 2>&1 &
これでOK。エラーの場合にログが残ってる点も便利ですね!*1
途中で質問に答えなければいけないタイプのmakeの場合は、yes というプログラムを使うと楽々。
# yes | make install > hoge 2>&1 &
yes は、ひたすら y を出力し続けるという yharian チックなプログラム。これをパイプしておけば、もし質問が出ても自動的に y を入力したことにしてくれる。便利、かも。(使ったことないけど)
いやまあscreen使えば良いんですけど。
追記
検索ワード 「途中でバックグラウンド」 で来ている人がいたので追記。
*1:makeの方でログ作ってくれる場合もあるけど