한국   대만   중국   일본 
Bash - Wikipedia コンテンツにスキップ

Bash

出典: フリ?百科事典『ウィキペディア(Wikipedia)』
Bash
Bashセッションのスクリ?ンショット
作者 ブライアン?フォックス 英語版
初版 1989年6月8日 (35年前)  ( 1989-06-08 )
最新版
5.2.21 [1]   ウィキデータを編集 / 2023年11月9日 (7か月前)
リポジトリ ウィキデータを編集
プログラミング
言語
C
??OS
プラットフォ?ム GNU
??言語 多言語 ( gettext )
種別 Unixシェル コマンド言語 英語版
ライセンス GNU GPL v3 + [6]
公式サイト www .gnu .org /software /bash /
テンプレ?トを表示

Bash (バッシュ)は Unixシェル かつ コマンド言語 英語版 であり、 GNUプロジェクト における Bourne Shell フリ?ソフトウェア による代替として ブライアン?フォックス 英語版 によって作成された [7] [8] 。Bashは1989年に初めてリリ?スされ [9] 、ほとんどの Linuxディストリビュ?ション のデフォルトの ログイン シェルとして?く普及している。 Windows 10 における Windows Subsystem for Linux でも利用可能である [10]

Bashは コマンドプロセッサ であり、通常はアクションを?生させるコマンドをユ?ザ?がタイプするテキストウィンドウで起動する。Bashは スクリプト と呼ばれるファイルからコマンドを?み?んで?行することも可能である。Bashはそれ以外の全てのUnixシェルと同?に、ファイル名の グロブ ( ワイルドカ?ド によるマッチング)、 パイプ ヒアドキュメント コマンド置換 英語版 ?? 、そして ?件テスト 反復 英語版 のための 制御構造 をサポ?トする。Bashの 予約語 構文 などの 言語 の基本的要素は全て Bourne shell からコピ?されており、ヒストリなどBourne shell以外の機能は C Shell KornShell からコピ?されている。Bashは POSIX 準?のシェルであるが、?多くの?張がされている。

Bashという名前は Bourne-again shell ボ?ン?アゲイン?シェル 頭字語 であり、Bashの置換?象であるBourne Shell [11] と、現代アメリカのキリスト?において精神的な再生を意味する born again ボ?ン?アゲイン ( 新生 )に引っ掛けた??落である [12] [13] [14] [15]

?史 [ 編集 ]

ブライアン?フォックスは1988年1月10日にBashの コ?ディング を開始した [16] が、これは彼の前任開?者に進?が見られなかったことに リチャ?ド?スト?ルマン が不?を抱くようになってからのことである [7] 。スト?ルマンと フリ?ソフトウェア財? (FSF) は、 BSD やGNUのコ?ドからビルドされた完全にフリ?なシステムにとって?存のシェルスクリプトを?行できるフリ?なシェルは?略上非常に重要であると考えていたため、Bashは彼らが自ら創設した?少ないプロジェクトのうちの1つとなり、フォックスはFSFの?業員としてその作業を引き受けた [7] [17] 。フォックスは1989年6月8日にBashの ベ?タ版 であるバ?ジョン.99をリリ?スし [9] 、1992年中頃 [18] から彼がFSFから去る [19] 1994年中頃 [20] の間のある期間まで主要なメンテナであった。フォックスが去った後、彼の責務はもう一人の初期貢?者であるChet Rameyへと移された [21] [22] [23]

それ以降BashはLinuxユ?ザ?の間で最も有名なシェルとなり、??な Linuxディストリビュ?ション のデフォルトインタラクティブシェルとなっている [24] [25] [26] (ただしデフォルトのスクリプトシェルが Almquist Shell であるLinuxディストリビュ?ションもある)。Bashは Microsoft Windows にも移植されて Cygwin MinGW の一部として配布されており、 DJGPP 英語版 プロジェクトにより DOS にも移植され、 NetWare にも移植され、さらに??な端末エミュレ?タを通じて Android にも移植されている。

2014年9月、UNIX/Linux?ネットワ?ク?テレコム?門家でありイギリスで?いているStephane Chazelas [27] は、プログラム?に セキュリティバグ を?見した。このバグは最初9月24日に公開されて シェルショック と命名され、CVE-2014-6271 [※ 1] , CVE-2014-6277 [※ 2] およびCVE-2014-7169 [※ 3] のナンバ?が割り?てられた。Bashを使用した CGI スクリプトで 任意コ?ド?行 が可能となり攻?されやすくなるため、シェルショックは深刻なバグとみなされた。シェルショックは、Bashが 環境?? を通じてサブシェルに??定義を渡す方法と?係していた [28]

機能 [ 編集 ]

Bashの コマンド 構文は、Bourne shellのコマンド構文のス?パ?セットである。構文の前?理においてBashと異なって解?される振る舞いに偶然遭遇してしまったり、新しくBashに組み?まれたコマンドと同じ名前のシステムコマンドを起動しようとするBourne shellスクリプトを除いて、Bashは大量に存在するBourne shellスクリプトのほとんどを修正せずに?行可能である。Bashのコマンド構文には、コマンドライン編集、 コマンド履? 英語版 、ディレクトリスタック、?? $RANDOM や?? $PPID 、およびPOSIXの コマンド置換 英語版 構文である $( コマンド ) など、KornShellやC shellから引用したアイデアが含まれる。

ユ?ザ?がインタラクティブコマンドシェルで タブキ? を押した場合、Bashは途中までタイプされたプログラム名やファイル名などの??な名前をマッチさせる コマンドライン補完 英語版 を自動で行う。Bashのコマンドライン補完システムは大?融通が利きカスタマイズ可能であるため、特定のプログラムやタスク用の引?やファイル名を補完する??とまとめてパッケ?ジングされることが多い。

Bashの構文には、Bourne shellにはない?張が多く存在する。Bashは他のプロセスを生成せずに整?演算ができる。この演算のためにBashは (( ?式 )) コマンドと $(( ?式 )) ??構文を利用する。Bashの構文は 入出力リダイレクト を?純化する。例えば、Bashでは &> 演算子を使用することで、 標準出力 標準エラ?出力 を同時にリダイレクトすることができ、Bourne shellにおいてこれに相?するコマンドである コマンド > file 2>&1 よりも簡?にタイプできる。Bashは <( コマンド ) および >( コマンド ) 構文を使用することにより、 プロセス置換 英語版 をサポ?トする。この構文は、通常のリダイレクトではファイル名が記述される箇所にある コマンド の出力(または入力)を引?の代用とする(これは名前なしパイプをサポ?トするシステムならば /proc/fd/ の名前なしパイプにより??され、 名前付きパイプ が必要ならば一時的な名前付きパイプにより??されている)。

function キ?ワ?ドを使用する場合、Bashの??宣言はBourne?Korn?POSIXスクリプトと互換性がない(KornShellでも function を使用する場合に同?の問題が起こる)が、BashはBourne shellやKornShellの??宣言構文を受け入れるためPOSIX準?である。これ以外にも違いがあるため、互換性確保を配慮せず書かれたBashのシェルスクリプトをBourneやKornShellのインタプリタで起動できることは滅多にないが、Linuxが普及するにつれて互換性確保を配慮せずに書くことは少なくなっている。ただしPOSIXモ?ドにおいては、Bashはより密接にPOSIXに準?している [29]

Bashは ヒアドキュメント をサポ?トする。Bashはバ?ジョン2.05bより、 <<< 演算子を使った「ヒア文字列」から標準入力へのリダイレクトが可能である。

Bash3.0では Perl 言語を思い起こさせる構文を使用した、シェル組み?みの 正規表現 をサポ?トする [30] [31]

Bash4.0では 連想配列 のサポ?トが導入された [29] [32]

ブレ?ス展開 [ 編集 ]

ブレ?ス展開はオルタ?ネイションとも呼ばれ、C shellから取り入れた機能である [※ 4] 。ブレ?ス展開は取り得る組み合わせのセットを生成する。生成された結果はファイルとして存在する必要はない。展開された各文字列結果はソ?トされておらず、保存された順に左から右へと?んでいる:

$ 
echo
 a
{
p,c,d,b
}
e
ape ace ade abe

$ 
echo
 {
a,b,c
}{
d,e,f
}

ad ae af bd be bf cd ce cf

Bourne shellではBashと同じ出力を返さないため、ユ?ザ?は移植するためのシェルスクリプトでブレ?ス展開を使うべきではない。

$ 
# ?統的なシェルはBashと同じ出力を返さない。

$ 
/bin/sh
 -c
 'echo a{p,c,d,b}e'

a{p,c,d,b}e

ブレ?ス展開がワイルドカ?ドと組み合わされた場合、最初に括弧が展開されてから通常通りワイルドカ?ドが置換される。したがって、カレントディレクトリにある?張子が .jpg または .jpeg または .png のファイル群を獲得するには以下のようにする:

ls
 *.
{
jpg,jpeg,png
}
    # *.jpg *.jpeg *.pngが展開されてから

                       # ワイルドカ?ド?理がなされる。

echo
 *.
{
png,jp
{
e,
}
g
}
   # echoだけでもブレ?ス展開が可能で、さらに括弧?の括弧も可能。

ブレ?ス展開は取り得る全ての組み合わせだけではなく、連?した範?に?して適用することも可能である。範?は2つの整?や文字の間を、2つのドットで?切って指定する。Bashの新しいバ?ジョンでは、範?の終点を指定する2つ目の整?の後にさらに2つのドットと3つ目の整?を指定することで、範?の?分を指定することも可能である。

$ 
echo
 {
1
..10
}

1 2 3 4 5 6 7 8 9 10

$ 
echo
 file
{
1
..4
}
.txt
file1.txt file2.txt file3.txt file4.txt

$ 
echo
 {
a..e
}

a b c d e

$ 
echo
 {
1
..10..3
}

1 4 7 10

$ 
echo
 {
a..j..3
}

a d g j

ブレ?ス展開を??展開と組み合わせると、ブレ?ス展開が先に行われ??展開がその後に行われてしまうため、場合によっては eval ビルトインが必要になる可能性もある:

$ 
start
=
1
;
 end
=
10

$ 
echo
 {
$start
..
$end
}
  # Brace expansionが??展開より先に評?されてしまうため展開に失敗。

{1..10}

$ 
eval
 echo
 {
$start
..
$end
}
 # 先に??展開をして、その結果の文字列に?してのブレ?ス展開を評?。

1 2 3 4 5 6 7 8 9 10

起動スクリプト [ 編集 ]

Bashは起動の際、??な ドットファイル 英語版 のコマンドを?行する。Bashが使用する初期化ファイルは、?行?限が?えられてかつ #!/bin/bash のような シバン が記述されたBashのシェルスクリプトコマンドと似てはいるものの、?行?限とインタプリタディレクティブのどちらも必要ない。

起動ファイルの?行順序 [ 編集 ]

?件 順序
インタラクティブな非ログインシェルとして起動 Bashは /bash.bashrc を?み?んで?行してから、(存在する場合) ~/.bashrc を?み?んで?行する。これは --norc オプションを使うことで禁止することができる。 --rcfile ファイル オプションにより、 ~/.bashrc の代わりに ファイル からコマンドを?み?んで?行するようBashに?制させることができる。
インタラクティブなログインシェルとして起動 Bashは(存在する場合) /etc/profile (ファイル名を /etc/bash.bashrc と改名されることが多い)を?み?み?行する。このファイルを?み?んだ後、 ~/.bash_profile ~/.bash_login 、および ~/.profile をこの順番で調べ、存在しかつ?み?めるもののうち最初のものを?み?んで?行する。
ログインシェルを終了した場合 Bashは(存在する場合) ~/.bash_logout を?み?んで?行する。

Bourne shellやC shellの起動シ?ケンスとの比較 [ 編集 ]

Bashの各要素はBourne shellやC shellからの派生である。このため、制限付きながら起動ファイルをBourne shellと共用でき、さらにC shellユ?ザ?には馴染みのあるいくつかの起動シ?ケンスを提供する。

項目 違い
?承可能な環境??の設定 Bourne shellはサブプロセス化されてから?承する環境??を設定するため、ログイン時に ~/.profile を使用する。Bashでも、Bash固有の ~/.bash_profile ~/.bash_login に以下の行を記述して、それらから明示的に ~/.profile を?行することでBourne shellと互換性を保つことが可能となる。Bash固有の構文を ~/.profile に記述しないことで、Bourne shellとの後方互換性を保つことが可能となる。
.
 ~/.profile
エイリアスと?? C shell由?の エイリアス という機能が存在するが、その大部分を置き換えるBourne shell由?の??という機能はエイリアスよりも一般的である。これら2つの機能は通常ログインシェルから?承することはできず、ログインシェルによって生み出されたサブシェル?に再定義する必要があった。この問題の??に利用可能な環境?? ENV が存在するが、C shellとBashではこの問題に直接的を絞ったサブシェル?の起動ファイルをサポ?トする。Bashでは ~/.bashrc がインタラクティブサブシェルのために呼び出される [※ 5] ~/.bashrc にあるユ?ザ?定義??がログインシェルでも必要な場合、以下の行を ~/.bash_login へ必要な環境??の設定後に記述する:
.
 ~/.bashrc
ログイン時のみやログアウト時のみに?行するコマンド C shellは最初のログイン時のみに?行されるタスクのための ~/.login ファイルをサポ?トする。このようなタスクにはシステムのロ?ド、ディスクステ?タス、電子メ?ルが?たかの有無などの表示や、ログイン時間のロギングなどがある。Bourne shellは ~/.profile でこのファイルを模倣できるが、ファイル名は事前に定義されていない。C shellモデルに似たセマンティクスを?現するため、 ~/.bash_profile では環境設定や??設定の後に以下の?に記述できる:
.
 ~/.bash_login

同?に、C shellはログインシェルを終了した場合のみに起動される ~/.logout ファイルを持つ。Bashでこれに相?するのは ~/.bash_logout であり、特殊な設定は必要ない。Bourne shellでは、似たような?果を得るためには組み?みコマンド trap を使用できる。

レガシ?互換なBash起動例 [ 編集 ]

以下の ~/.bash_profile コ?ドはBourne shellと互換性があり、 ~/.bashrc ~/.bash_login に?してC shellと似たセマンティクスを提供する。 [ -r ファイル ] ファイル が存在し?み?める場合 0 を、そうでない場合は 1 を返す。返り値が0の場合 && の後の部分が評?される。

[
 -r
 ~/.profile
 ]
 &&
 .
 ~/.profile
             # 環境設定で、かつてはBourne Shell限定の構文

if
 [
 -n
 "
$PS1
"
 ]
 ;
 then
                       # インタラクティブか?

   [
 -r
 ~/.bashrc
     ]
 &&
 .
 ~/.bashrc
        # インタラクティブシェル用のtty/プロンプト/??設定

   [
 -r
 ~/.bash_login
 ]
 &&
 .
 ~/.bash_login
    # ログインシェル?用のログイン時タスク

fi
                                            # "if" ブロック終了

Bash起動におけるオペレ?ティングシステムの問題 [ 編集 ]

UNIX Linux のバ?ジョンの中には、 /etc ディレクトリ配下にBashシステム起動スクリプトが存在するものもある。Bashはこれらのスクリプトを、Bashの通常の初期化の一部として呼び出すが、それ以外の起動ファイルをBash起動シ?ケンスの記述と異なる順序で?み?むこんでしまう可能性がある。さらにシステムが新しいユ?ザ?アカウントに設定を提供するスケルトンファイルのように、ル?ト?ユ?ザ?のファイル?におけるデフォルトの?容に問題がある可能性もある。 ウィンドウマネ?ジャ の起動前にユ?ザ?がBash起動スクリプトで自身の環境??を準備しようとすると、 X Window System の起動スクリプトにより予想外の問題が?生する可能性がある。これらの問題は、 ~/.profile を?み?むために ~/.xsession ~/.xprofile ファイルを使う場合に?生する可能性が高い。これらのファイルは xterm GNOME 端末 などの、ウィンドウマネ?ジャから生み出されたBashシェルウインドウが必要とする環境??を提供する。

移植性 [ 編集 ]

--posix オプションを付けてBashを呼び出したり、スクリプトに set -o posix を記述すると、Bashは POSIX 1003.2 standardに非常に良く準?する [33] 。?統的なBourne ShellにはないがBashには搭載されている機能は以下である [33] :

  • 特定の?張呼び出しオプション
  • $( コマンド ) 記法を使ったコマンド代替(ただしこの機能はPOSIX1003.2規格の一部)
  • ブレイス展開
  • 特定の配列演算と連想配列
  • テストコンストラクトを?張する二重括弧
  • 二重括弧の算術評?コンストラクト
  • 特定の文字列操作(ただし一部の機能はPOSIX1003.2規格の一部)
  • プロセス代替
  • 正規表現マッチング演算子
  • Bash特有の組み?み機能
  • コプロセス

bashism バシズム とは、Bash以外のUnixシェルでは適切に動作しないBashコ?ドの部分を指す [34]

キ?ボ?ドショ?トカット [ 編集 ]

Bashはデフォルトの ( Emacs ) キ?バインディングを利用して編集するためのコマンドライン用キ?ボ?ドショ?トカットを提供するために、Readlineを利用する。 set -o vi を起動すれば Vi バインディングが利用可能となる [35]

プロセス管理 [ 編集 ]

Bashにはコマンドに?する?行モ?ドとして、バッチモ?ドと?行?行モ?ドの2つがある。

バッチモ?ドつまりコマンドを逐次的に?行するためには、コマンドを「 ; 」文字や別の行で分割する必要がある:

コマンド1
;
 コマンド2

上記の例では、 コマンド1 が完了した後で コマンド2 が?行される。

コマンド1 コマンド2 を?行?行するには、以下の方法で?行する必要がある:

コマンド1
 &
 コマンド2

上記の例では、 コマンド1 がバックグラウンド(シンボル & )で?行され、フォアグラウンドで コマンド2 を?行するシェルへとすぐに制御が?される。

プロセスはフォアグラウンド?態とバックグラウンド?態だけでなく、停止?態にすることも可能である。プロセスがフォアグラウンドで?行されていれば、これは Ctrl + z をタイプすることで行える。バックグラウンドプロセスおよび停止されたプロセスの全てを一?するには jobs を起動することで行える:

$ 
jobs

[1]-  Running                  コマンド1 &

[2]+  Stopped                  コマンド2

上記の出力では、括弧?の?はジョブIDを示している。プラス記?は bg fg に??するデフォルトプロセスを指し示す。RunningおよびStoppedという表示は、 プロセス?態 英語版 を指し示す。最後の文字列はプロセスを開始したコマンドである。

プロセスの?態は??なコマンドを使うことで?更できる。 fg コマンドはプロセスをフォアグラウンドにして、 bg は停止されたプロセスをバックグラウンドで?行するよう設定する。 bg fg は最初の引?に?理するプロセスを指定するジョブIDを渡すことができる。引?がない場合、 jobs の出力でプラス記?が付いたデフォルトプロセスに?して?理が行われる。プロセスに シグナル を送って中?するためには、 kill コマンドを使うことができる。ジョブIDはパ?セント記? 「 % 」の後に指定する必要がある:

kill
 -s
 SIGKILL
 %1

?件付き?行 [ 編集 ]

Bashは先行するコマンドにより設定された 終了コ?ド に?じてコマンドを?行する、「?件付き?行」コマンド?切り文字を提供する。以下にその例を示す:

cd
 ディレクトリ??パス
 &&
 ./何かのコマンド
 ||
 echo
 "エラ?が?生しました。"
 >
&
2

./ 何かのコマンド は、 cd コマンドが「成功」した(終了ステ?タスとして 0 を返した)場合のみ?行され、 echo コマンドは cd ./ 何かのコマンド コマンドのどちらかがエラ?を返した(終了ステ?タスが 0 以外を返した)場合のみ?行される。

全てのコマンドに?して、終了ステ?タスは特殊な??である $? に保存される。Bashは?件コマンド評?の形式として、 if ?件 ; then ?件を?たす場合の?理 ; else ?件を?たさない場合の?理 ; fi case $?? in パタ?ン1 ) ?理1 ;; パタ?ン2 ) ?理2 ;; esac もサポ?トする。

バグ報告 [ 編集 ]

bashbug と呼ばれる外部コマンドはBashのバグを報告する。このコマンドが呼び出されると、フォ?ムが入力された?態でユ?ザ?のデフォルトエディタが表示される。このフォ?ムはBashのメンテナ(またはオプションでそれ以外のメ?ルアドレス)にメ?ルされる [36] [37]

注? [ 編集 ]

  1. ^ CVE - CVE-2014-6271
  2. ^ CVE - CVE-2014-6277
  3. ^ CVE - CVE-2014-7169
  4. ^ C shellとBashのブレ?ス展開は要素がひとつの時の?動が異なる。
    % 
    csh
     -c
     'echo a{p}e'
    
    ape
    
    % 
    bash
     -c
     'echo a{p}e'
    
    a{p}e
    
    
  5. ^ C shellでは ~/.cshrc がインタラクティブサブシェルのために呼び出される。また、 tcsh では ~/.tcshrc が、その後 ~/.cshrc がインタラクティブサブシェルのために呼び出される。

出典 [ 編集 ]

  1. ^ bash-5.2.21.tar.gz ” (9 11月 2023). 9 11月 2023??。
  2. ^ Bash FAQ
  3. ^ macos - Why does Apple ship bash 3.2? - Ask Different
  4. ^ Missing source code - GPL compliance? · Issue #107 · microsoft/WSL · GitHub
  5. ^ GNU Bash ”. Softpedia . SoftNews. 2016年4月9日 ??。
  6. ^ GNU Project . “ README file ”. 2017年10月21日 ??。 “Bash is free software, distributed under the terms of the [GNU] General Public License as published by the Free Software Foundation, version 3 of the License (or any later version).”
  7. ^ a b c リチャ?ド?スト?ルマン (forwarded with comments by Chet Ramey) (10 February 1988). "GNU + BSD = ?" . Newsgroup comp.unix.questions . Usenet:   2362@mandrill.CWRU.Edu . 2011年3月22日?? For a year and a half, the GNU shell was "just about done". The author made repeated promises to deliver what he had done, and never kept them. Finally I could no longer believe he would ever deliver anything. So Foundation staff member Brian Fox is now implementing an imitation of the Bourne shell.
  8. ^ Hamilton, Naomi (May 30, 2008), “The A-Z of Programming Languages: BASH/Bourne-Again Shell” , Computerworld : 2 , http://www.computerworld.com.au/article/222764/a-z_programming_languages_bash_bourne-again_shell/?pp=2&fp=16&fpid=1 2011年3月21日 ?? , "When Richard Stallman decided to create a full replacement for the then-encumbered Unix systems, he knew that he would eventually have to have replacements for all of the common utilities, especially the standard shell, and those replacements would have to have acceptable licensing."  
  9. ^ a b Brian Fox (forwarded by Leonard H. Tower Jr.) (8 June 1989). "Bash is in beta release!" . Newsgroup gnu.announce . 2010年10月28日??
  10. ^ How to install Bash shell command-line tool on Windows 10
  11. ^ C Programming by Al Stevens, Dr. Dobb's Journal , July 1, 2001
  12. ^ リチャ?ド?スト?ルマン (2010年11月12日). “ About the GNU Project ”. Free Software Foundation . 2011年4月24日時点の オリジナル よりア?カイブ。 2011年3月13日 ??。 “"Bourne Again Shell" is a play on the name Bourne Shell , which was the usual shell on Unix.”
  13. ^ Gattol, Markus (March 13, 2011), Bourne-again Shell , http://www.markus-gattol.name/ws/bash.html 2011年3月13日 ?? , "The name is a pun on the name of the Bourne shell (sh), an early and important Unix shell written by Stephen Bourne and distributed with Version 7 Unix circa 1978, and the concept of being "born again"."  
  14. ^ Rohaut, Sebastien (April 2015). LINUX: Preparacion para la certificacion LPIC-1 : Examenes LPI 101 y LPI 102 . Editions ENI. p. 170. ISBN   978-2-7460-9513-7 . https://books.google.com/books?id=9HbUHgnfSfkC&pg=PA170&dq=bash+bourne+shell+%22born+again+%22&hl=en&sa=X&ved=0ahUKEwi_jIeBrJDUAhUL04MKHQwNC9kQ6AEIMzAD#v=onepage&q=bash%20bourne%20shell%20%22born%20again%20%22&f=false 2017年5月27日 ?? . "El bash es un derivado de Bourne Shell. Bourne es el nombre del principal programm programador de este shell. La expresion "Bourne Again" es un guino a los origenes del bash (Bourne) y un juengo de palabras en "I born again", lo qui significa "he nacido otra vez" o "reencarnado". [Bash is a derivative of Bourne Shell. Bourne is the name of the main programmer for this shell. The expression "Bourne Again" is a nod to the origins of bash (Bourne) and a pun on "born again", which means "I was born again" or "reincarnated".]"  
  15. ^ Stallman, Richard (1999). Il progetto GNU . Open Sources. Voci dalla rivoluzione Open Source. Apogee Publisher. p. 66 . https://books.google.com/books?id=Z8IIgmP9_2UC&pg=PA65&dq=bash+bourne+shell+%22born+again+%22&hl=en&sa=X&ved=0ahUKEwj2xKW1rZDUAhWO0YMKHZaYACw4ChDoAQhaMAc#v=onepage&q=bash%20bourne%20shell%20%22born%20again%20%22&f=false 2017年5月27日 ?? . ""Bourne Again Shell" e un gioco di parole sul nome "Bourne Shell", che era la normale shell di Unix. NdT: "Bourne again" richiama l'expressione cristiana "born again", "rinato" (in Cristo). ["Bourne Again Shell" is a pun on the name "Bourne Shell", which was the normal Unix shell. NdT: "Bourne again" refers to the Christian expression "born again", "reborn" (in Christ).)]"  
  16. ^ Brian Fox (August 29, 1996), shell.c , フリ?ソフトウェア財? , http://ftp.gnu.org/gnu/bash/bash-1.14.7.tar.gz , "Birthdate: Sunday, January 10th, 1988. Initial author: Brian Fox"  
  17. ^ リチャ?ド?スト?ルマン (2010年10月3日). “ About the GNU Project ”. Free Software Foundation . 2011年4月24日時点の オリジナル よりア?カイブ。 2011年3月21日 ??。 “Free Software Foundation employees have written and maintained a number of GNU software packages. Two notable ones are the C library and the shell. ... We funded development of these programs because the GNU Project was not just about tools or a development environment. Our goal was a complete operating system, and these programs were needed for that goal.”
  18. ^ len (g...@prep.ai.mit.edu) (20 April 1993). "January 1993 GNU's Bulletin" . Newsgroup gnu.announce . Usenet:   gnusenet930421bulletin@prep.ai.mit.edu . 2010年10月28日??
  19. ^ Chet Ramey (October 31, 2010), Dates in your Computerworld interview , https://www.scribd.com/doc/40556434/2010-10-31-Chet-Ramey-Early-Bash-Dates 2010年10月31日 ??。  
  20. ^ Ramey, Chet (1994年8月1日). “ Bash - the GNU shell (Reflections and Lessons Learned) ”. Linux Journal . 2008年12月5日時点の オリジナル よりア?カイブ。 2008年11月13日 ??。
  21. ^ Chet Ramey (12 June 1989). "Bash 0.99 fixes & improvements" . Newsgroup gnu.bash.bug . 2010年11月1日??
  22. ^ Chet Ramey (24 July 1989). "Some bash-1.02 fixes" . Newsgroup gnu.bash.bug . 2010年10月30日??
  23. ^ Brian Fox (2 March 1990). "Availability of bash 1.05" . Newsgroup gnu.bash.bug . 2010年10月30日??
  24. ^ Foster-Johnson, Eric; Welch, John C.; Anderson, Micah (April 2005). Beginning Shell Scripting . John Wiley & Sons, Inc.. p. 6. ISBN   978-0-7645-9791-6 . https://books.google.com/books?id=dwIRERUpQPEC&pg=PA6&dq=bash+most+popular+unix+shell&hl=en&sa=X&ved=0ahUKEwi_3fnR2pPNAhUX3GMKHTEdAZoQ6AEIQTAF#v=onepage&q=bash%20most%20popular%20unix%20shell&f=false 2016年6月6日 ?? . "Bash is by far the most popular shell and forms the default shell on Linux and Mac OSX systems."  
  25. ^ Danesh, Arman; Jang, Michael (February 2006). Mastering Linux . John Wiley & Sons, Inc.. p. 363. ISBN   978-0-7821-5277-7 . https://books.google.com/books?id=tIjrVYbZmUAC&pg=PA363&dq=bash+most+popular+unix+shell&hl=en&sa=X&ved=0ahUKEwjnipq_3JPNAhUH52MKHUD-DA04ChDoAQgpMAA#v=onepage&q=bash%20most%20popular%20unix%20shell&f=false 2016年6月6日 ?? . "The Bourne Again Shell (bash) is the most common shell installed with Linux distributions."  
  26. ^ Bresnahan, Christine; Blum, Richard (April 2015). CompTIA Linux+ Powered by Linux Professional Institute Study Guide: Exam LX0-103 and Exam LX0-104 (3rd ed.). John Wiley & Sons, Inc.. p. 5. ISBN   978-1-119-02122-3 . https://books.google.com/books?id=2P3zBgAAQBAJ&pg=PA5&dq=%22most+popular%22+linux+shell&hl=en&sa=X&ved=0ahUKEwiDhpnX4JPNAhWCKGMKHQCmCoEQ6AEIRjAH#v=onepage&q=%22most%20popular%22%20linux%20shell&f=false 2016年6月6日 ?? . "In Linux, most users run bash because it is the most popular shell."  
  27. ^ https://www.linkedin.com/pub/st%C3%A9phane-chazelas/7/2a2/834
  28. ^ Huzaifa Sidhpurwala (2014年9月24日). “ Bash specially-crafted environment variables code injection attack ”. レッドハット . 2017年10月21日 ??。
  29. ^ a b “6.11 Bash POSIX Mode” , The GNU Bash Reference Manual, for Bash, Version 4.1 , (December 23, 2009), オリジナル のDecember 3, 2010時点におけるア?カイブ。 , https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html 2010年10月26日 ??。  
  30. ^ Advanced Bash-Scripting Guide ”. www.tldp.org . 2017年3月5日 ??。
  31. ^ The syntax matches that shown on the regex(7) manペ?ジ .
  32. ^ "The shell provides associative array variables, with the appropriate support to create, delete, assign values to, and expand them." https://tiswww.case.edu/php/chet/bash/NEWS
  33. ^ a b Mendel Cooper. “ Portability Issues ”. The Linux Documentation Project . ibiblio.org. 2017年10月21日 ??。
  34. ^ https://linux.die.net/man/1/checkbashisms
  35. ^ BASH Help - A Bash Tutorial ”. Hypexr.org (2012年10月5日). 2013年7月21日 ??。
  36. ^ bashbug(1) , die.net
  37. ^ "Linux / Unix Command: bashbug" , apple.com

?連項目 [ 編集 ]

外部リンク [ 編集 ]