この行は/etc/rc.sysinit
、Linux のファイル 内にあります。
[ -r /proc/mdstat -a -r /dev/md/md-device-map ] && /sbin/mdadm -IRs
構文がどのように機能するかということとは対照的に、それが実際に達成することにはあまり興味がありません。
ファイルが存在し、読み取り可能 ( ) であるかどうかをテストし/proc/mdstat
、存在する場合は を実行します。/dev/md/md-device-map
-r
/sbin/mdadm -IRs
角括弧は、プログラムの代替名test
(またはその Bash 置換) であり、ファイルの存在など、多くのものをテストできます。は-a
論理「and」です。
詳細については、「条件式」を参照してくださいman bash
。
は[
実際にはコマンド名そのものであり、コマンドと同等test
です。だから、何を意味man test
するかを調べるために使ってください。-r
[
システムによっては、次の場所にあります/usr/bin
。
$ ls -l /usr/bin/[
-rwxr-xr-x 1 root root 37000 Oct 5 2011 /usr/bin/[
またはシンボリックリンクである可能性があります:
$ ls -l /usr/bin/[
-rwxr-xr-x 1 root root 4 Oct 5 2011 /usr/bin/[ -> test
一部のシェルに[
は組み込みコマンドもあります ([[
さらに、追加オプションを提供するシェルもあります)。ただし、ほとんどの組み込みコマンドと同様に、ファイルシステムにも実装があります。
これの意味は :
/proc/mdstat
読み取り可能であり、読み取り可能である場合は、/dev/md/md-device-map
実行します/sbin/mdadm -IRs
見るhelp test
ノート
[[
[
コマンドに似た (しかしより強力な) bash キーワードです。http://mywiki.wooledge.org/BashFAQ/031およびhttp://mywiki.wooledge.org/BashGuide/TestsAndConditionalsを参照してください。
POSIX sh 用に作成している場合を除き、 をお勧めし[[
ます。