在 bash 中检查命令成功

Inf*_*ien 7 bash cp dd shell-script

我目前正在编写一个小脚本来备份大量软盘,然后将它们格式化以备后用。

dd用来复制磁盘的映像并复制磁盘上的cp所有文件。

以下是我用来执行此操作的命令:

# Copying disk image
dd if="/dev/fd0" of="/path/to/backup/folder" &>/dev/null && sync

# Copying disk files
cp -R "/mnt/floppy/." "/path/to/backup/folder/" &>/dev/null
Run Code Online (Sandbox Code Playgroud)

在这个过程之后,脚本需要格式化软盘。我的问题是我希望我的脚本只有在两个备份命令 (ddcp) 都成功时才能格式化软盘。

例如,如果dd因为坏块而无法复制所有1.44MB 的软盘,则不要格式化软盘。

如何测试两个命令是否成功(它们必须单独测试,因为我并不总是同时备份磁盘的映像和文件)?

Sté*_*las 3

我会做:

ok=true
if dd ...; then
  sync
else
  ok=false
fi

cp ... || ok=false

if "$ok"; then
  mformat...
fi
Run Code Online (Sandbox Code Playgroud)