如何仅在找到应用程序时发出命令?

如何仅在找到应用程序时发出命令?

我需要一些有关 shell 脚本的帮助。

下面的代码可以工作,如果找到 sed,它将继续执行脚本,但如果不存在,它就会退出。

  if ! [ -x "$(command -v sed)" ]; then
    echo "Error: sed is not installed, please install sed." >&2
    exit
  fi

如果系统找到 ufw,我必须进行哪些更改才能运行这些命令。

    if ! [ -x "$(command -v ufw)" ]; then
      ufw allow 80/tcp
      ufw allow 443/tcp
    fi

答案1

只需删除表示“不”的感叹号即可。所以现在我们不再检查命令是否“不”在那里,而是检查它是否存在。

   if [ -x "$(command -v ufw)" ]; then 
      ufw allow 80/tcp
      ufw allow 443/tcp
   fi

另一种选择是,如果您想先捕获它,然后在条件不满足时退出。

   if ! [ -x "$(command -v ufw)" ]; then 
        echo "Your error message here"
        exit # Stop execution
   fi
        # below code only runs if command exists
        ufw allow 80/tcp
        ufw allow 443/tcp



相关内容