Dismiss Join GitHub today GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together. Sign up
後輩が cat README | tr ' ' '\n' | sort | uniq -c | sort -nr | head てなテクニックを見て、びっくりしたみたいな話をしていたのだが、こういうパイプラインを利用するテクニックを学んでいないのは色々損な気がする。 ていうか、サーバで丸一日以上かかるような処理を実行するのもしょっちゅうなのに、GNU screen も nohup も知らないってのはいろいろ支障があるような気もするのだが、だれも教えないものかなぁ。 ということで、bash or zsh のちょっとしたテクニックとか*1。リダイレクトとかパイプラインは略。 連続実行 単純に連続実行。 % foo; barfoo が正常終了したときだけ bar を実行 % foo && barfoo が正常終了しなかったときだけ bar を実行 % foo || bar&&、||は本来は論理演
シェルスクリプト総合 その11 674 :名無しさん@お腹いっぱい。 [] :2008/07/16(水) 11:04:03 標準入力が、ファイルなのかパイプなのかを判断するシェルを発行してください。 端末なのかどうかは [ -t 0 ] で発行できますが、 そうじゃなく、ファイルなのかパイプなのかを判断するシェルです。 お願いします。 675 :名無しさん@お腹いっぱい。 [↓] :2008/07/16(水) 12:07:49 cat FILE | cmd cmd < FILE この違いを cmd で検知しると? 発行できんと思うのれすが・・・ 676 :名無しさん@お腹いっぱい。 [↓] :2008/07/16(水) 12:14:57 fstat(2)するコマンドをCで書け。 677 :名無しさん@お腹いっぱい。 [↓] :2008/07/16(水) 12:21:05 >>675 それが
「Java BlockingQueueで遊ぶ:パイプラインごっこ」でパイプラインの話をしたので、本来の、つまりUnixのパイプやリダイレクトを少し調べてみました。 たまに話題となる some-command >file 2>&1 と some-command 2>&1 >fileの挙動の違いについて、「シェルはコマンドラインリダイレクトの指定を右から左に解釈実行する」なんて説明が見つかりました。んなバカな! パージングは左から右にするものですよ。パーズツリーを逆順にたどることはできるけど、そんなことする必然性はなんにもないよ。 次の記事を読むと、「右から左」なんて事情じゃないことが分かるでしょう。 UNIXの部屋 検索: リダイレクト シェルのリダイレクトにまつわる失敗 さてここでは、複雑なリダイレクト処理も完全に理解できる処方箋を示しましょう。例えば、次のコマンドラインが何をするか分かる
コンソール上から JavaScript で Web ブラウザを操作できる、JS Commander というプログラムを作ってみました。JS Commander を立ち上げるとプロキシサーバが同時に起動し、このプロキシサーバを使うように Web ブラウザを設定すると、コンソール上で JavaScript のコードが入力できるようになります。Web ブラウザ上の JavaScript を自由に実行できるコンソールには FireBug, FireBug Lite, jsh, MozRepl などがありますが、JS Commander の特徴は以下のような感じです。ブラウザ非依存 - XmlHttpRequest が使えるブラウザであればたぶん動きます。readline を使った操作 - bash などのシェルと同じような emacs 風キーバインドが使えます。別のマシンにあるブラウザも操作可能
ref:一度 tty から起動したプロセス (csh/ksh 版) - にぽたん研究所 id:lurker さんのブックマークコメントから disownはSIGHUP無視するようにします。bgとはちょっと違うものだと思います。/gdb使えば入出力は差し替えれそう。 だよね、とか思いつつ(gdbを使った端末差し替えは気になるけどとりあえずスルー)、zsh と tcsh で試す。 zsh で。 % cat nohup.pl #!/usr/bin/env perl use strict; use warnings; $SIG{HUP} = sub { print "recieved SIGHUP\n"; exit; }; while (1) { sleep 10; } % ./nohup.pl & % exit zsh: you have running jobs. % exit recieve
MozRepl and MozUnit (formerly bundled as MozLab) will hopefully make your experience of developing AJAX and Mozilla applications suck less. They're packaged as extensions for Firefox/Thunderbird/XULRunner and released as open source. Have a look at the videos for some of the cool things you can do with them. MozRepl Connect to Firefox and other Mozilla apps, explore and modify them from the insid
Kodama's home / tips. expect. 対話的なコマンド(ssh, telnet, ftp, su等)を自動実行したいとき ssh, telnet , ftp 等の対話的に使用するように作られたプログラムを スクリプト中に組み込んで定型的な作業を自動実行したい場合には expect を用いる事をお勧めします. また, ruby 言語を使えるなら ruby の expect.rb を使うのも良いでしょう. スクリプト中で su が必要な作業をさせたい場合にも便利です. 複数のマシンでの管理作業に利用した例があります. 複数のマシンでリモ−トでコマンド実行 手作業での実行例 次は telnet して ls する場面です. $ telnet hoge # マシンhoge に telnet した hoge login: foo # ログイン名 foo Password: # パ
元Vine SPARC開発者。2003年度未踏ユース採択者。海外でも活躍できる国際的なLinuxエンジニアになることを夢見て日本で頑張っています。ウノウ株式会社にて写真共有SNS「フォト蔵」を開発中。 みなさんは UNIX系 OS で環境変数 PATH の設定をどうしてますか? UNIX系 OS では微妙にディレクトリ構成が違ってたり、 同じ OS でも後から追加したパッケージの関係で PATH が違ってたりして面倒です。 僕の場合、環境変数 PATH は自動で設定するようにしているので、 ほとんど数年間シェルの設定は変わっていません。 すごく便利なので、僕が使ってる方法を紹介します。 まずは次のようなシェル関数を定義する。 function add_env(){ env_name=$1 shift for i in $@; do if ! dirs=`eval echo $i` > /d
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く