「Dash」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(Kusakata がページ「Dash (日本語)」を「Dash」に移動しました)
1行目: 1行目:
[[Category:Command shells (日本語)]]
+
[[Category:コマンドシェル]]
 
[[en:Dash]]
 
[[en:Dash]]
 
[[Wikipedia:ja:Debian Almquist shell|Dash]] はミニマルな POSIX 互換シェルです。Bash よりもずっと高速に動作し、使用するメモリを少なく抑えることができます。ほとんどの POSIX 互換スクリプトはスクリプトの一番最初の行に {{ic|/bin/sh}} を指定しており、{{ic|/bin/sh}} がシェルとして動作しますが、Arch ではデフォルトで {{ic|/bin/bash}} へのシンボリックリンクになっています。
 
[[Wikipedia:ja:Debian Almquist shell|Dash]] はミニマルな POSIX 互換シェルです。Bash よりもずっと高速に動作し、使用するメモリを少なく抑えることができます。ほとんどの POSIX 互換スクリプトはスクリプトの一番最初の行に {{ic|/bin/sh}} を指定しており、{{ic|/bin/sh}} がシェルとして動作しますが、Arch ではデフォルトで {{ic|/bin/bash}} へのシンボリックリンクになっています。
15行目: 15行目:
 
Dash に含まれていない Bash の機能 ('bashism') は {{ic|/bin/bash}} を明示的に指定していないと動作しなくなります。以下の手順に従うことで修正が必要なスクリプトがないか確認することができます。
 
Dash に含まれていない Bash の機能 ('bashism') は {{ic|/bin/bash}} を明示的に指定していないと動作しなくなります。以下の手順に従うことで修正が必要なスクリプトがないか確認することができます。
   
[[AUR (日本語)|AUR]] から {{AUR|checkbashisms}} をインストールしてください。
+
[[AUR]] から {{AUR|checkbashisms}} をインストールしてください。
   
 
==== チェックするべき場所 ====
 
==== チェックするべき場所 ====

2015年1月5日 (月) 18:36時点における版

Dash はミニマルな POSIX 互換シェルです。Bash よりもずっと高速に動作し、使用するメモリを少なく抑えることができます。ほとんどの POSIX 互換スクリプトはスクリプトの一番最初の行に /bin/sh を指定しており、/bin/sh がシェルとして動作しますが、Arch ではデフォルトで /bin/bash へのシンボリックリンクになっています。

インストール

公式リポジトリから dashインストールできます。

DASH をデフォルトシェルとして使う

/bin/sh から /bin/dash にシンボリックリンクを貼り直すことでシステムのパフォーマンスを向上させることができます。ただその前に、明示的に #!/bin/bash を指定してないスクリプトが、ちゃんと POSIX 互換であり Bash の機能を使っていないことを確認する必要があります。

bashism を確認

Dash に含まれていない Bash の機能 ('bashism') は /bin/bash を明示的に指定していないと動作しなくなります。以下の手順に従うことで修正が必要なスクリプトがないか確認することができます。

AUR から checkbashismsAUR をインストールしてください。

チェックするべき場所

  • インストールしたスクリプトの #!/bin/sh シバン:
$ checkbashisms -f -p $(grep -rlE '^#! ?/bin/(env )?sh' /usr/bin)

/bin/sh の再リンク

機能が破壊されないことを確認できたら、/bin/sh のリンクを変更しても安全なはずです。再リンクを行うには次のコマンドを使用:

# ln -sfT dash /bin/sh

Bash を更新すると /bin/sh が上書きされることがあります。上書きされないようにするために、/etc/pacman.conf の [option] セクションに以下の行を追加してください:

NoUpgrade   = usr/bin/sh
NoExtract   = usr/bin/sh

参照

http://article.gmane.org/gmane.linux.arch.devel/11418: