/etc/rc.d/init.d/下などのデーモン制御スクリプト内を見ていると、if文の後に「[」「]」で囲われた記述がある。
if [ -f /etc/sysconfig/network ]; then . /etc/sysconfig/network else NETWORKING=no HOSTNAME=localhost fi |
この括弧は、一見するとシェル文法かと思われるだろう。しかし「[」はコマンドとして存在している。Red Hat Linux 7.x/8.0の例では、次のように/usr/bin/下に見られる。
# ls -l /usr/bin/[ lrwxrwxrwx 1 root root 4 10月 6 03:05 /usr/bin/[ -> test |
上記のシンボリック結果からは、「[」コマンドの実体が「test」コマンドであることが分かる。このため、上記のスクリプトは以下のようなtestコマンドによる記述も可能だ。
if test -f /etc/sysconfig/network then . /etc/sysconfig/network else NETWORKING=no HOSTNAME=localhost fi |
Copyright © ITmedia, Inc. All Rights Reserved.