linux - Shell - 在 IF else 中运行一堆命令

标签 linux shell if-statement

我想准备一个 shell 脚本,如果我的所有命令都成功,它将执行我的所有命令,然后它会打印“SUCCESS”,任何一个命令失败,然后打印“FAILED”。

我的 shell 脚本命令:

cd /home/lin

mkdir logs

cp /tmp/filelog.log logs/

rm /tmp/log*

touch /tmp/log

保存此文件 test.sh

这是我的查询,

在执行此命令时,如果我的任何一个命令失败,那么它应该停止执行并打印“失败”

否则打印“成功”

最佳答案

因为每个命令都依赖于它的前身,所以这是 set -e 的完美用例。在子shell中执行所有工作,您只需检查子shell的结果。

set -e 将在遇到第一个错误时退出当前 shell。 (即,返回非零退出状态时。)

(set -e
  cd /home/lin
  mkdir logs
  cp /tmp/filelog.log logs/
  rm /tmp/log*
  touch /tmp/log
) && echo "SUCCESS" || echo "FAILED"

关于linux - Shell - 在 IF else 中运行一堆命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46011928/

相关文章:

linux - 查找,grep gzipped 文件

shell - 如何在ansible shell任务中正确使用jq

python - Python 中的简单 if-else 语句

linux - 使用 UNIX/Linux 命令列出文件

linux - Docker - 命名空间查询

java - 安装 RPM 时出错 -%post 规范失败的依赖项/bin/sh 脚本

c++ - 将显示数组的 5 个 for 循环压缩为 1?

java - 从条件树中排除分支,删除未使用的代码

c# - .NET 核心 : Finally block not called on unhandled exception on Linux

linux - 一个一个执行三个可执行文件