シェルスクリプト bash 最新版の利用

スポンサーリンク

シェルスクリプト bash 最新バージョン

シェルスクリプト bash バージョン確認

bashのバージョン確認を行います。現在、最新版はバージョン4.4(2017年1月)です。

$ bash --version
bash --version
GNU bash, バージョン 4.3.11(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
...

シェルスクリプト bash 最新版とインストール

公式サイトから最新版のソースコードをダウンロードしてビルドします。

bash 最新版のダウンロードと展開

例では、ホームディレクトリにダウンロードして展開しました。

# ダウンロード(バージョンは必要に応じて変更して下さい)
$ wget http://ftp.jaist.ac.jp/pub/GNU/bash/bash-4.4.18.tar.gz .

# 圧縮ファイルの展開と確認
$ tar xzvf bash-4.4.18.tar.gz 

$ ls
bash-4.4.18/

bash ビルド作業

configuremakeという流れで、bashの最新版をビルドします。

# 展開したフォルダ内へ移動
$ cd bash-4.4.18

# ビルド作業
$ ./configure
$ make

# /usr/bin へインストール
$ sudo make install

bash 最新版確認

最新版へ移行できたか確認します。一度ログアウトして、再ログイン後に確認します。

# 再ログインが必要

# bash バージョン確認(最新版)
$ bash --version
GNU bash, version 4.4.18(4)-release (x86_64-unknown-linux-gnu)
Copyright (C) 2016 Free Software Foundation, Inc.
...

bash ビルド作業でエラーが発生したら?

ビルド作業でよく発生するエラーは、「ビルド環境が整っていない」というエラーです。もし、makeなどを実行した場合に以下のようなエラーが発生したら、パッケージ管理aptbuild-essentialをインストールすると解決すると思います。

ビルド作業でエラーが発生

ビルド作業の最初の手順であるconfigureで、以下のようなエラーが発生した場合、ビルド環境を整える必要があります。

$ ./configure
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu

Beginning configuration for bash-4.4-release for x86_64-unknown-linux-gnu

checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/home/ubuntu/bash-4.4.18':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details

ビルド環境を整える

build-essentialは、C/C++コンパイラ、make・ライブラリ等の標準開発ツール一式をまとめたパッケージです。

$ sudo apt install build-essential

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  binutils cpp cpp-4.8 dpkg-dev fakeroot g++ g++-4.8 gcc gcc-4.8
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
  libasan0 libatomic1 libc-dev-bin libc6-dev libcloog-isl4 libdpkg-perl
  libfakeroot libfile-fcntllock-perl libgcc-4.8-dev libgmp10 libgomp1 libisl10
  libitm1 libmpc3 libmpfr4 libquadmath0 libstdc++-4.8-dev libtsan0
  linux-libc-dev make manpages-dev
...
After this operation, 115 MB of additional disk space will be used.
Do you want to continue? [Y/n] 

ディスク容量に問題がなければ、「Y」を押してパッケージのインストール開始します。パッケージのインストールが完了したら、(~/bash-4.4.18 にて)bash 最新版 インストール作業を再開します。

$ ./configure
$ make

関連記事1

bash 算術計算 書き方
シェルスクリプトを書いているとき、計算式が使えると便利なことがあります。ファイルの残りの行数を表示したいな行毎に項目を足して合計を表示したいな入力したデータを計算して処理に使いたいないろいろな状況があると思いますが、bashでも算術計算は可...
bash リダイレクションによる上書き禁止
何かコマンドからの出力を簡単にファイルに残しておけるので、リダイレクトは良く使います。しかし、たまに大事な既存ファイルに上書きしてしまって失敗することがあります。そんな「よくあるリダイレクトミス」を防ぎましょう!リダイレクトで上書き禁止する...
bash 配列の使い方|サンプルでわかる最低限の知識
bash 配列の使い方について、初期化・参照・削除のやり方〜配列を使った繰り返し処理まで、最低限の知識を短いサンプルで理解できます!bash の配列を理解すると、シェルスクリプトの応用の幅が広がります。bash 配列の使い方bash 配列の...
bash 部分文字列・置換・長さ・連結・分割の文字列処理
bashのよく使う文字列処理、部分文字列・置換・連結・長さ・分割について、サンプルを交えながらまとめます。とにかく早く問題解決したい人はこちら>>直接、データ解析相談部分文字列文字列から部分文字列を取り出すときは、位置を指定した抽出方法か、...
bash パイプ 複数コマンド 組み合わせ
複数のコマンドを連続で処理すると、解析作業が効率的に進むときがあります。コマンドの出力結果をソートしたり、さらに絞り込みを行ったりするだけで、分り易い結果になることは良くあることかもしれません。そんなちょっとしたテクニックでは、パイプ(|)...
linux コマンド プロセス置換 無駄な一時ファイルを作らない
bashでは、複数のコマンドをパイプでつなぐことができます。しかし、入力をファイルからしか受け取らない一部のコマンドでは、わざわざ一時ファイルを準備する必要があって意外と面倒です。そんなときは、プロセス置換を活用しましょう。無駄な中間ファイ...
バックグラウンド実行とフォアグラウンド実行 -プログラムの色んな実行方法-
解析プログラムは長い時間を必要とするものもあります。プログラムの実行や管理方法を理解して、作業効率を効率的に行いましょう。バックグラウンド実行とフォアグラウンド実行バックグラウンド実行をうまく活用しようプログラムの実行には、起動後その場で終...

関連記事2

xargs 引数を上手に使う | find と xargs でファイルのリネームやコピーをひと工夫
bioinformaticsでは、たくさんのファイルを使うことが多いので、ファイル処理は効率的に行いたいですね。このようなときfind コマンドや xargs コマンドが役に立ちます。例えば、fastqファイルの拡張子を、fq.gz から ...
パス名からファイル名を取得する方法
パス名からファイル名を抽出する場合は、basenameコマンドを使うと簡単です。$ find . -name "test.txt" /aaa/bbb/ccc/test.txt $ find . -name "test.txt" | xarg...
不要なファイルを探す ファイル名・ファイルサイズ・ファイル更新日時
バイオインフォマティクスの解析では大きなファイルを扱うことが多いので、ストレージの管理には気を使います。ストレージの容量を確保するために、不要なファイルはこまめに削除(または他の場所へ移動・圧縮など)することが、もっとも簡単で確実な方法だと...
ファイル名を一括変更 Windowsエクスプローラーとシェルスクリプト
バイオインフォマティクスでは、データファイルが大量になることがあります。いつも頭を悩ませるのがデータの管理です。たまにファイル名を一括で変更したいときがありますが、便利な方法があるので紹介したいと思います。Windows エクスプローラーで...
シェルスクリプト 引数の与え方とチェック方法
シェルスクリプトに引数を与える場合、引数が少ない場合はエラーにするなどの対策が必要です。一方、引数を10個以上うけとる場合、受け取り側で引数をずらしながら1つずつ取得する必要があります。シェルスクリプトの引数をチェックする方法シェルスクリプ...
シェルスクリプト | ファイル存在チェック・空ファイルチェック
bashでスクリプトを作成するときに、よく使うのがファイルの存在チェックです。if文と組合せると、ファイルの有無によって処理を分けることができます。エラー処理も記述できて使いやすいスクリプトになります。様々な処理で活用できるので、是非参考に...
シェルスクリプト 関数 スクリプトの書き方
今回は、プログラムの基本構成となる「関数」を作ってみます。シェルで関数を作成すると、普段シェルを使って行っている作業を色々と自動化できて便利なことがあります。少しずつ、使えるようになると良いですね。関数を利用したプログラムメッセージを1つず...
シェルスクリプト select メニューを作る スクリプトの書き方
select文を使うと、簡単にメニューを作成することができます。但し、Bシェルでは使えず bash を使います。リストでメニュー項目を準備します。select内の変数で、選ばれた項目や入力値を取得することができます。メニュープロンプトは、P...
シェルスクリプト Hello World スクリプトの書き方
シェルプログラミングをはじめましょう。使うシェルは「Bシェル」です。Bシェルは機能が少ないのですが、どんなUNIXシステムでも動作するという利点があります。ログインシェルはbashやzshを使っている人が多いと思いますが、これらはBシェルの...
タイトルとURLをコピーしました