此BASH脚本中的以下行有什么作用

  • 本文关键字:作用 BASH 脚本 linux bash
  • 更新时间 :
  • 英文 :


此行在Linux上的/etc/rc.sysinit文件中:

[ -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是逻辑"one_answers"。

有关更多详细信息,请参见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.woolge.org/bashguide/testsandconditionals

除非您为Posix SH写作,我们建议[[

相关内容

  • 没有找到相关文章

最新更新