shell脚本“while”条件中的“-h”参数

shell脚本“while”条件中的“-h”参数

我试图理解一个已经写好的 Shell 脚本,并且遇到了以下行。

while [ -h "$SOURCE" ];

我需要知道的是-H

至于附加信息:

$SOURCE = ./my-script.sh

答案1

不是关键字-h的选项while,而是[(and test) 实用程序的选项。该选项的含义在 shell 的test、或手册中进行了描述[(因为这些通常是内置实用程序),请参阅man test

它是标准test和 的选项[以及 POSIX 标准描述它像这样:

-h pathname

如果pathname解析为符号链接的现有目录条目,则为 True。如果pathname无法解析,或者pathname解析为不是符号链接的文件的现有目录条目,则返回 False。如果 的最后一个组成部分pathname是符号链接,则不遵循该符号链接。

简而言之,它评估为真的如果给定的路径名​​是符号链接,那么循环while将一直循环,直到变量中的值SOURCE不再引用符号链接。

相关内容