タグ

shellに関するpochisatoのブックマーク (3)

  • ログアウトしてもバックグラウンド ジョブを継続する方法

    はじめに SSH 接続で時間の掛かるシェルスクリプトをバックグラウンドで走らせて帰りたいのに、SSH 接続を切るとジョブが死んでしまいます。SSH 接続に限らず目の前の OS からログアウトしたりターミナル エミュレータを終了しても同じ現象が起こります。 この症状は正常です。なぜなら、バックグラウンド ジョブを起動したプロセス(ログイン シェル)が子プロセスである該当のバックグラウンドジョブをハングアップ シグナル( HUP )によって終了させるからです。 シェルスクリプトを起動した親プロセスは子プロセスの終了状態を監視しています。ですからログアウトして親プロセスであるシェルが終了すると子プロセスはゾンビ プロセスとなってしまうので親プロセスとなるシェル(ログインシェル)は子プロセスであるバックグラウンド ジョブを kill ( kill -HUP ) するのです。 nohup コマンド

    ログアウトしてもバックグラウンド ジョブを継続する方法
  • シェルでの正規表現比較 - akihiro_obの日記

    シェルで正規表現を使って引数の値とかチェックしたい。 一度やって忘れてたので記録しておく。 bashの場合 bashさんは正規表現比較方法があるので楽ちん if [[ "$INPUT" =~ ^[0-9]+$ ]]; then echo 'number!!'; fi bashさんかわいいよbashさん shの場合 基的にbashは入ってるのでbashでいいと思うんだけど、 お作法的にshで書くことになってるとも思う もう古い考えな気がしないでもないけど shはbashのようにできない臭いのでexprでやってたっぽい if [ `expr "$INPUT" : "^[0-9]*$"` -gt 0 ]; then echo 'number!!' fi exprでマッチしている数を出して0と比較してる。 ただ、どうやらあんまり複雑なことはできないらしく {min, max}を使うことはできない

    シェルでの正規表現比較 - akihiro_obの日記
  • .bash_profileとか.bash_loginとか.profileとか.bashrcとか.bash_logoutとか多すぎる - rderaログ

    bashの設定ファイルが多すぎて、混乱しました。 でも、ちょっと調べたら分かった(つもり)。 試しにアウトプットしてみます。 bashの設定ファイル こんなにあるみたいなんです。 /etc/profile ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc ~/.bash_logout /etc/profile ログインしたときに読み込まれます。 デフォルトの設定ファイルですね。 ~/.bash_profile ログインして/etc/profileの次に読み込まれる設定ファイル。 結構、大事なファイルみたいです。 ~/.bash_login ログインして~/.bash_profileが存在しない場合に読み込まれる。 Cシェルの.loginに由来します。 ~/.profile ログインして~/.bash_loginが存在しない場合に読み込まれ

    .bash_profileとか.bash_loginとか.profileとか.bashrcとか.bash_logoutとか多すぎる - rderaログ
  • 1