如果 ! mkdir -p $APPLICATION_DIRECTORY/conf

if ! mkdir -p $APPLICATION_DIRECTORY/conf

谁能告诉我以下 shell 命令的作用是什么?

if ! mkdir -p $APPLICATION_DIRECTORY/conf

mkdir -p "$APPLICATION_DIRECTORY/conf" 尝试创建命名目录,同时创建任何缺失的父目录。与每个命令一样,它有一个整数退出状态,其中 0 表示目录已成功创建,非零值表示某种错误。

if 命令测试其命令的退出状态,而不是像大多数其他编程语言那样测试布尔值。 ! 运算符否定退出状态:非零退出状态转换为 0,退出状态 0 转换为 1。

换句话说,

if ! mkdir -p "$APPLICATION_DIRECTORY/conf"; then
  echo "There was an error creating the directory"
else
  echo "The directory was successfully created"
fi

您也可以使用直接逻辑(更容易理解):if mkdir -p ...

示例:

if mkdir -p "$APPLICATION_DIRECTORY/conf"; then 
   echo "The directory was successfully created"
else 
   echo "There was an error creating the directory"
fi