有人可以澄清一下:脚本中的“case“:$PATH:”吗?

有人可以澄清一下:脚本中的“case“:$PATH:”吗?

对另一个人的回答问题建议在脚本中使用以下代码:

case ":$PATH:" in
  *:$HOME/mydir:*) echo it is in the path;;
  *) echo not there ;;
esac

这段代码的目的是检查是否$HOME/mydir在 中$PATH,但是 中的示例建议精确的“匹配”而不是“包含”。

这里的‘案件’是如何运作的?谢谢。

答案1

case是完全匹配,但*意味着“匹配任何内容”,并且大小写以 开头和结尾*,因此它将匹配包含 的任何字符串:$HOME/mydir:。第二种情况将匹配任何内容,但前提是第一个条件不匹配

相关内容