1

この行は/etc/rc.sysinit、Linux のファイル 内にあります。

[ -r /proc/mdstat -a -r /dev/md/md-device-map ] && /sbin/mdadm -IRs

構文がどのように機能するかということとは対照的に、それが実際に達成することにはあまり興味がありません。

4

3 に答える 3

2

ファイルが存在し、読み取り可能 ( ) であるかどうかをテストし/proc/mdstat、存在する場合は を実行します。/dev/md/md-device-map-r/sbin/mdadm -IRs

角括弧は、プログラムの代替名test(またはその Bash 置換) であり、ファイルの存在など、多くのものをテストできます。は-a論理「and」です。

詳細については、「条件式」を参照してくださいman bash

于 2012-11-02T00:02:46.250 に答える
1

[実際にはコマンド名そのものであり、コマンドと同等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

一部のシェルに[は組み込みコマンドもあります ([[さらに、追加オプションを提供するシェルもあります)。ただし、ほとんどの組み込みコマンドと同様に、ファイルシステムにも実装があります。

于 2012-11-02T00:02:20.830 に答える
1

これの意味は :

/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 用に作成している場合を除き、 をお勧めし[[ます。

于 2012-11-02T00:03:05.743 に答える