タグ

Linuxとzshに関するraimon49のブックマーク (3)

  • 技術メモ帳: [unix]複数のファイルの名前をまとめて変更する

    複数のファイルの名前を変更する際に、 便利なコマンドというものがある。 いくつかご紹介させていただこう。 カレントディレクトリにあるファイルの名前を、 たとえば、*.html を *.htm と名前を変更するという課題に対し どのぐらいエレガントに書けるかというのを比較してみる。 まず、普通にやったらどうだろう。 おそらく、for文 をつかうことだろう。 for file in *.html do base=`basename $file .html` mv $base.html $base.htm; done; zshだともうちょっとスマートにかけて、 for file in *.html do mv $file:r.html $file:r.html; done; こんな具合。 for文 が嫌いなネット右翼のために、 xargs を使ってこの問題を解いてみよう。 ls -1 *.htm

    raimon49
    raimon49 2012/02/02
    パイプをつなぐアレコレの代替コマンド。file-renameやzmv
  • 高密度小池 / zsh の謎の挙動に悩まされていました

    zsh の謎の挙動に悩まされていました nohup unko としてプログラムを起動した場合、端末を閉じたり exit コマンドを発行した場合にもそのまま動いていて欲しいものですが、 zsh 上ではこれも終了されてしまう。 しかし、シェルスクリプトを書いてその中で nohup していた場合は端末や zsh を殺しても大丈夫。 ちょっと調べたら答えがあった。 端末を殺した場合のフロー 端末が殺される→中で実行しているシェルに SIGHUP が送られる→シェルがよろくやる んでこれが bash の場合は SIGHUP を送らない のだけど zsh の場合は 子プロセス全部に問答無用で SIGHUP を送る ので、 nohup していても殺されてしまう。 シェルスクリプトの中で nohup していて死なないのは、 端末の死→ zsh にSIGHUP が来る → zsh

    raimon49
    raimon49 2011/08/01
    setopt nocheckjobs
  • zshとSIGHUPとその設定 - 技術メモ帳

    shell と SIGHUP - odz buffer 関連: 一度 tty から起動したプロセス (csh/ksh 版) - にぽたん研究所 なるほど。zshではデフォルトだと 終了時にSIGHUPが送信されるらしい。 手元のbash2.0で試してみたら終了時にSIGHUPが送信されなかった。 zshで終了時に警告を出さないようにするには、 setopt nocheckjobs とすればよいようだ。 あと、zshにはいきなりdisownの状態(job tableに加わらない状態)で バックグラウンド実行する &! という記法がある。 SIGHUP送られない。 % perl nohup.pl &! % exit % pgrep -fl nohup.pl 524 perl nohup.pl -- 余談だが、zshではsetoptに指定するオプション名に 好きなだけアンダーバーをつける事が出来

  • 1