戦闘力9の男のブログ: まさかの無限ループ!ずっとslのターン!

今日はちょこっと,コマンドラインの話というか

メモをとりますよーっと.

ls;pwd とすると!

なんと一行で!!

t07092@t07092 ~/public_html% ls;pwd
config.rb*  head.rb*   login.rb*  nikoniko.css  top.rb*     uploadedit.rb*  videolist.rb*
flvfile/    head.rb *  main.rb*   test/         upload.rb*  uploadhtml.rb*
/home/t07092/public_html

lsとpwdが実行できちゃいます.

あんまり使いませんが,この前I君がされていた,Slコマンドの無限ループのやり方は...

while true; do sl; done

とすることでできちゃいます,

悪用厳禁★

次に あれが実行できればこれを実行してこれが実行できればそれを実行するぜ!

っていうのをやってみようかなと思います.

これは&&を使います.

rubyではこれとこれ!みたいなノリですが,コマンドラインでは

a && b だと,「aが実行できた場合にbを実行する」という意味になります

この前のbibtexの話でいうと...

platex report && jbibtex report && platex report && platex report && dvipdfmx reoprt && acroread report.pdf

こうしちゃえば,全部一気にコンパイルしちゃってpdfにしちゃうことができます.

便利!

でもこれ,かくのめんどくね?間違ってるかもしんねーじゃんけよ!!おい!!

っていう人も少なくないと思います.

そんな人にはこれはどうですか?

 alias myplatex="platex report && jbibtex report && platex report && platex report && dvipdfmx reoprt && acroread report.pdf"

emacsのaliasを張り替えておけばmyplatexと打つだけでできちゃいます.

どうですか?すごいでしょ??

aliasってすごいと思いませんか?

ちなみ僕は,cd ..を xx にしちゃいました.

いちいち,そんなかったるいことうってらんねーよ!!って感じだったので,ついやってしまったの図です.

センスない?それは気にしてはいけないと思います.......

次になんか実行すると, 0 1 2の終了コードというものがあります


0は正常に実行ができましたよ!ということです.

まぁエラーなしで動きました!モンハン風に言うと「上手にできましたー★」


次に1は標準出力をさします


2はエラーをさします.

ちなみにこれは

echo $?とすることで直前に実行したコマンドがどの終了コードで終わっているかを見ることができます.


わからない人からすると,なにそれ?おいしいの?って感じでしょうが・・・・・・・・


じゃあ見せてやろう!俺の本気というやつを!!!

(俺ではないけど)

 ruby hoge.rb > log.txt
これはhoge.rbの実行結果をlog.txtにいれています.
実際に,実行結果をいれるということは端末に出てきたのが入るわけですね.


次に

 ruby hoge.rb 2> log.txt
とすると,hoge.rbのエラーログのみがlog.txtにいれられます.

あらすごい!エラー知りたいときには便利ね!


そしてそして!

 ruby hoge.rb 2>&1 log.txt

とすることで,標準出力とエラーログを両方log.txtにぶち込むことができます!!

まー素敵よ★★


でも,これをやると何が出てるかわからなくね?

って思う人は少なからずいると思います.

すると!

 ruby hoge.rb 2>&1 | tee log.txt

こうすると,実行結果を見ながらもlog.txtにその内容をいれることができます!!

素晴らしいですねーーーー

このブログをみてる 人いるのかわからないけど,メモとして残しておこう....