タグ

bashに関するfootnoteのブックマーク (5)

  • 原理原則で理解するbashの仕組み - Qiita

    はじめに 以前書いたエントリー、重大な脆弱性(CVE-2017-5932)で少し話題になったbash4.4の補完機能の便利な点で、bash4.4からでないとタブの補完機能のソート処理が制御できないという問題について、ソースコードレベルで調べた結果をまとめていたのですが、bashの実装そのものを深く掘り下げ過ぎてしまい、内容が膨大になったので、何回かに分けて書こうと思います。 今回はbashが起動されてからインタラクティブモードでキーボードの入力を待ち受けるまでのお話です。普段使っているbashがどのような処理を行っているのか一緒に覗いてみませんか? 検証ソースコード Bash version 4.1.0(1) release GNU bashの生誕 bashのプロセスが起動されるのはOSへのログイン時にユーザーのログインシェルがbashに設定されている場合、あるいはログイン後に明示的にba

    原理原則で理解するbashの仕組み - Qiita
  • Bash Infinity Framework - シェルスクリプトの概念をはるかに超えるモダンなフレームワーク | ソフトアンテナ

    UNIXやMacを使用しているユーザーならば誰でも一度はシェルスクリプトを作成した経験があると思います。どんな環境でも使い回せるポータビリティの高さが魅力ですが、プログラミング言語としてみると独特な部分が多く、なんとなく苦手意識を持っている方も多いかもしれません。 日紹介する「Bash Infinity Framework」はそんなシェルスクリプトの概念を完全に変えてしまうBash用のフレームワークです。 モジュラーかつ軽量で、C#やJavaJavaScriptといった他の言語のコンセプトを取り入れ、プラグ&プレイで必要な機能だけを追加していける特徴を持っています。 主な特徴は以下の通りです: 自動エラーハンドリング 名前付きパラメータ($1、$2ではなくて) 配列とマップをパラメータとして引き渡せる try-catchの実装 独自例外のthrow キーワードのインポート 出力を改善す

    Bash Infinity Framework - シェルスクリプトの概念をはるかに超えるモダンなフレームワーク | ソフトアンテナ
  • Bash用ユニットテストフレームワーク作りました - Folioscope

    Bash用テストフレームワークに、Batsやshunit2がありますが、イケてないなーと思ってたら、気づいたら自分で作ってました。 github.com テストの結果はモダンなテストフレームワークのように、カラフルに表示します。 またFAIL時は、FAILしたテストの結果を表示します。 自分の Arch Linux 上の Bash 4.3.42 および、Travis CI 上で動作することを確認しています。 インストール curl -o ~/bin/bashtub https://raw.githubusercontent.com/ueokande/bashtub/v0.1/bin/bashtub chmod +x ~/bin/bashtub です。ただし~/binはパスが通ってるとします。 これでターミナルから bashtub と打つことで実行できます。 bashtub テストを書く 各

    Bash用ユニットテストフレームワーク作りました - Folioscope
  • bashの脆弱性(CVE-2014-6271) #ShellShock の関連リンクをまとめてみた - piyolog

    bashに脆弱性が確認されたとして騒ぎになっています。ここではCVE-2014-6271に関する情報をまとめます。 #記載内容について、誤っている、追記した方がいい等情報がございましたら@piyokangoまでご連絡お願いします。 脆弱性情報 脆弱性の愛称 ShellShock Bashbug CVE番号 Bash周りで発行されているCVEは6つ。その内詳細が不明なのが2つ。(CVE-2014-6277,CVE-2014-6278) CVE 発見者 想定脅威 特記 CVE-2014-6271 Stephane Chazelas氏 任意のコード実行 ShellShockの発端となったバグ。 CVE-2014-7169 Tavis Ormandy氏 任意のコード実行 CVE-2014-6271修正漏れによる脆弱性 CVE-2014-7186 Redhat DoS メモリ破壊(Out-of-Bo

    bashの脆弱性(CVE-2014-6271) #ShellShock の関連リンクをまとめてみた - piyolog
  • シェルスクリプトでサブシェルのプロセスIDを取る方法

    B! 38 0 0 0 パイプとか$()とかで生成するサブシェルのIDを取得する方法について。 PID, PPID 関数の場合 サブシェルとして実行された関数内でのほんとのPIDを取得する方法 PIDが初期化されてるプロセスでの$SHELL...について Bash Version 4の場合 Zshの場合 まとめ PID, PPID 通常、スクリプトでもコマンドラインでも、自分のプロセスIDは$$に入っています。 (以下、特記がないものはMac OS X 10.9でBash 3.2.51でやっています。) また、$PPIDには自分の親プロセスのIDが入っています。 なので、 ppid.sh 1 2 #!/usr/bin/env bash echo PPID=$PPID, PID=$$ こんなスクリプトを作って実行すると $ echo PPID=$PPID, PID=$$ PPID=26005

    シェルスクリプトでサブシェルのプロセスIDを取る方法
  • 1