タグ

シェルスクリプトに関するjinjin252525のブックマーク (6)

  • シェルでバックグラウンドで起動したプロセスの戻り値を取得するには - まじかんと雑記

    Bashでバックグラウンドで起動したアプリの戻り値の取得 - Linux Square 検索すればすぐ見つかるんじゃないのかと思ったが意外にも出てこない。あまり知られていない機能なので仕方がないかも。 で、どうやればよいかというと、こうする。 foo 1 & foo1pid=$! foo 2 & foo2pid=$! foo 3 & foo3pid=$! wait $foo1pid echo $? wait $foo2pid echo $? wait $foo3pid echo $? 変数 $! には最後に起動した非同期リスト (バックグラウンドプロセス) のプロセス ID が入っている。これは別の非同期リストを起動すると上書きされてしまうので、非同期リストを一つ起動するたびに個別の変数に保存しておく。 非同期リストの終了ステータス (戻り値) を得るには、保存しておいたプロセス ID を

    シェルでバックグラウンドで起動したプロセスの戻り値を取得するには - まじかんと雑記
  • シェルスクリプト Tips | UNIX & Linux コマンド・シェルスクリプト リファレンス

    シェルスクリプト Tips コーディング・スタイル ここに書かれている内容は、あくまで筆者の好みでありほぼ完全に主観ではあるが、経験的に行き着いたスタイルでもあるので推奨します。 スクリプトのヘッダを作成する 最近はあまり使用されることもないのかもしれないが @(#) の記述と、スクリプトの使用方法、および概要をファイルの前方にコメントとして記述しておくようにする。 ※ @(#) は what コマンドで参照する情報を記述するための記号です。詳細は「whatコマンドについて」を参照。 #!/bin/bash # # @(#) hoge.sh ver.1.0.0 2008.04.24 # # Usage: # hoge.sh param1 param2 # param1 - パラメータ1です. # param2 - パラメータ2です. # # Description: # hoge.shスク

    シェルスクリプト Tips | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • シェルスクリプトを書くときに気をつけていること(その1) - mikedaの日記

    初級者向けに『自分がシェルスクリプト書くときに気をつけていること』をまとめてみました。 @masudaKの『シェルスクリプトを書く際に気を付けていること8箇条』の乗っかりエントリです。 内容は重複しないように書いてますので合わせて読んでください! 基的にLinuxの/bin/sh、/bin/bashを想定しています。 テキスト処理は標準入力から受け取って標準出力に出す テキストを扱う小さなツールを作りましょう。 引数はオプション情報を渡すのに使います。 そうすればgrep、sort、uniqなどの便利なコマンドとパイプで連携できます。 grep ERROR /tmp/test.log | my_cmd1.sh 192.168.1.1 | sort 全てを実行する1つのスクリプトを作るのはたいへんだし、応用が効かないです。 人間に伝えたいメッセージは標準エラー出力に出す パイプでつないだ時

    シェルスクリプトを書くときに気をつけていること(その1) - mikedaの日記
  • bashの正規表現マッチングの使い方 - adsaria mood

    あるフリーウェアのインストール用bashプログラムを見ていたら次の様なものがあった。(以下の例は簡略化してある。) STRING="abc" if [[ "$STRING" =~ "^ab[cd]$" ]]; then echo "matched" else echo "unmatched" fi if文の条件表現の中に“=~”というオペレータがある。manを見ると =~ オペレータは文字列を正規表現と比較するとある。知らなかった。bashの文字列比較で正規表現が使えるとは。私は正規表現比較が必要な時はgrepに喰わせて判断していたのだが、これを使えば簡単にできる。 ところが、だ。上のプログラムが期待通りに動かない。上の例では =~ の左辺と右辺の正規表現はマッチするはずだが、結果は“unmatched”。色々と正規表現を変えてみたが、どれとしてマッチングしない。しかし、if文を次のように

    bashの正規表現マッチングの使い方 - adsaria mood
  • USP友の会

    重要: メーリングリストから別の連絡手段への移行について 現在、Facebookページでの連絡が主になっており、 メーリングリストを手間をかけて管理する意義があまりなくなってきたこと、 申し込みがあっても現状2ヶ月に1度しか登録しておらずかえって連絡の滞りが起こっていることを鑑み、 誠に勝手ではございますが、メーリングリストの募集フォームを閉鎖いたします。 2017年3月18日までの申し込みは反映します。 皆様のメールアドレスは1年程度様子を見て消去いたします。 また、このサイトについても更新をしていない状態ですが、活動はシェル芸勉強会で行なっておりますので、 活動の主体になっている人々のブログ等でご確認ください。 上記Facebookページにぜひご参加くださいませ。また、その際は@ryuichiuedaまで一言声をお掛けください。 2017年3月19日: 上田 USP友の会とは? ・US

  • シェルスクリプトのデバッグは typeset または declare を使うと良いかも - よんちゅBlog

    はじめに つい最近知った便利なデバッグ方法 (長年シェルスクリプトを書いているのに知らなかった。これが常識だったら恥ずかしい…) シェルスクリプトのデバッグでは echo で変数の中身を見るという原始的な方法をよく使うかと思います。 いわゆる プリントデバッグ というやつですね。 もう少し詳しいデバッグが必要な場合は、 set -x と set +x でデバッグしたい部分を囲むという方法もあります。 今回は プリントデバッグ で使う echo の代わりに typeset or declare を使うと良いというお話です。 プリントデバッグは typeset or declare を使おう typeset or declare は変数宣言などでよく使うコマンドですが、変数の中身を見るのにも使えます。 echo と比べて何が良いのかというと、変数の中身はもちろん変数名や変数の型も表示してくれ、

    シェルスクリプトのデバッグは typeset または declare を使うと良いかも - よんちゅBlog
  • 1