いつも忘れるのでPIDの取得方法についてまとめてみた。 bashにおけるPID用変数一覧 bashでは、PIDを取得するための変数があらかじめ用意されている。 シェル変数と特殊パラメータに分かれているが、取得できる対象はすべての変数で異なってくる。 PID取得用の特殊パラメータ 特殊パラメータ 説明
マスタリングLinuxシェルスクリプト 第2版 ―Linuxコマンド、bashスクリプト、シェルプログラミング実践入門 作者:Mokhtar Ebrahim,Andrew MallettオライリージャパンAmazon 令和最新版のシェルスクリプトの入門書とリファレンスがセットになった1冊。手元に置いておくと安心感ありますよね。 令和最新版なので、冒頭からデバッグしたいならVisual Studio Code がオススメ、と出てきます。 コンテナ使おうと思ったらシェルスクリプトの読み書きの出番がどんどん増えていって、コンテナに一番必要なスキルはシェルスクリプトのスキルでは?と思っている今日この頃です(違います)が、そのくらいの用途に必要な要素は全部盛り込んであり、シェルスクリプトの文法と実践的な使い方に加えて、一緒に利用されることの多いgrep、awk、sedといったコマンドの解説も併せて載
こんにちは、エンジニアリングGの中村です。 以前にこのブログにてエムスリーでの社内研修について紹介しました。今回は、この中でのbashスクリプティング講座の資料を公開します。 www.m3tech.blog 弊社の中でもいろいろな用途でbashが使われていますが、bashは簡単に利用できるもののプログラミング言語としてはバグを生みやすい、辛い言語だと思います。 ここで紹介しているのはいわゆるコーディング規則というよりも、バグ防止と可読性向上のためのルールをTips集的にまとめたものです。 bashにおいてまだまだ注意するところはありそうですが、多少なりともわかりにくいスクリプトの削減になればと期待しています。 [追記: 2018-08-22] はてブにて以下のコメントをいただきました。 bashスクリプティング研修の資料を公開します - エムスリーテックブログ bashで50行以上になった
私はシェルスクリプトの大ファンで、他人のスクリプトから面白い方法を学ぶのが大好きだ。最近、SSHサーバの2要素認証を簡単にするためのauthy-sshスクリプトに出会った。このスクリプト群を見まわしていて、みんなと共有したいたくさんのクールなことを見つけた。 出力に色付けする 出力文字列を、成功した時は緑に、失敗した時は赤に、警告は黄色に色づけしたいと思うことはたくさんあるだろう。 NORMAL=$(tput sgr0) GREEN=$(tput setaf 2; tput bold) YELLOW=$(tput setaf 3) RED=$(tput setaf 1) function red() { echo -e "$RED$*$NORMAL" } function green() { echo -e "$GREEN$*$NORMAL" } function yellow() { e
Feb 27, 2017 シェルスクリプトでコマンドラインのオプションを解析するために、自分用の ロジックを実装してみた。 いつもは Posix shell の範囲で作るのだが、今回は bash 用。 配列が使えると何かと便利そうなので。 まあ、脱 bash も後でやるかも。 問題は 検索してみる 改良してみる まとめ 問題は コマンドラインから取得されるオプションの解析。 C 言語なら、getopt.3にある、getopt() や getopt_long() の例を使えば良い。 ところがシェルスクリプトだと、イマイチ定番の手法が確立されていない 模様。 このページのスクリプトにちょっと追加して、まぁまぁ、使えるものが できたので、自分用のテンプレとする事にした。 検索してみる 前出の bash によるオプション解析 ページが詳しい。 手法としては 3 つある。 bashの組み込みコマンド
GNUプロジェクトよって開発されたUNIX用シュルの一つ「Bash」。Linuxディストリビューションの多くでデフォルトシェルとして採用されているため、汎用的に利用できるシェルとして広く普及しています。 本日紹介する「bash-guide」は、このBashに関する知識を深めることができるドキュメント。bashの重要なコマンドの意味や使い方の説明から始まり、各種UNIX/Linuxコマンドの操作、シェルプログラミングの方法まで一通り知ることができる情報となっています。 例えば最初の「Basic Operations」という項目では、export、whereis、whichといった良く使うコマンドの説明がまず行われ、引き続いてcat、chmod、cp、diffなどのファイル関連コマンド、awk、cut、echoなどのテキスト関連コマンド、ディレクトリ関連コマンド、ssh操作方法等の解説が行われ
はじめに 以前書いたエントリー、重大な脆弱性(CVE-2017-5932)で少し話題になったbash4.4の補完機能の便利な点で、bash4.4からでないとタブの補完機能のソート処理が制御できないという問題について、ソースコードレベルで調べた結果をまとめていたのですが、bashの実装そのものを深く掘り下げ過ぎてしまい、内容が膨大になったので、何回かに分けて書こうと思います。 今回はbashが起動されてからインタラクティブモードでキーボードの入力を待ち受けるまでのお話です。普段使っているbashがどのような処理を行っているのか一緒に覗いてみませんか? 検証ソースコード Bash version 4.1.0(1) release GNU bashの生誕 bashのプロセスが起動されるのはOSへのログイン時にユーザーのログインシェルがbashに設定されている場合、あるいはログイン後に明示的にba
スクリプトの実行に時間がかかるのをなんとかしたい シェルスクリプトで複数のコマンドを実行させたいとき、上から順に1つずつ実行するから終わるまで時間がかかってつらい。 既存のスクリプト(上から順に実行される) #!/bin/bash param=huga ./hoge.sh aa 1 $param ./hoge.sh bb 2 $param ./hoge.sh cc 3 $param ./hoge.sh dd 4 $param #!/bin/bash param=huga cat << EOS | perl -pe 's/\n/\x00/' | xargs -0 -n 1 -P 3 -I{} sh -c '{}' ./hoge.sh aa 1 $param ./hoge.sh bb 2 $param ./hoge.sh cc 3 $param ./hoge.sh dd 4 $param EO
自分用にメモしておく コマンド実行 CMD1; CMD2, CMD1 && CMD2 ;はCMD1の結果に関わらずCMD2も実行される &&はCMD1の結果が正常な場合のみCMD2が実行される CMD1 || CMD2 - 失敗時に後続コマンドを実行する CMD || printf "%b" "MSG"でエラーメッセージを表示する エラーメッセージ表示後exit 1したい場合 = CMD || { printf "%b" "FAILED.\n" ; exit 1 } CMD || printf "%b" "FAILED.\n" ; exit 1と波括弧無しで書くと期待通り動作しない(CMDが成功時もexit 1してしまう) CMD & - バックグラウンド実行 CMD &で[1] 4592のようにジョブ番号とプロセスIDが表示される killしたければkill %ジョブ番号 か kill
bash の使い方を1から見直すシリーズ シェルスクリプトは、もうbashで書いていいよね。bashが動かない環境なんてないんだし。 bash の紛らわしい記号や歴史的経緯によるPOSIXかき分けなどがあって、bashに特化した記事って少ないし断片的なので、色々と調べたことを再構成してまとめて記事にしました。 私自身 [[ / [ の違いが全然わからないので調べ始めました。その結果あれこれ知見が得られたので書きながら復習をしていました。 気づけば、bash の教科書的なものになってしまいました。 何かの役に立てばいいと思って記事のインデックスをまとめておきます。まだ一部書けてないですがそのうち書きます。 はじめに はじめに bashとPOSIX bashが動く環境 zshとの比較 変数と配列と数値計算 変数 配列のまとめ 組込 let による数値計算とインクリメント 連想配列(assoc
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く