Deberá consultar cada paso para verificar su código de retorno. Esto significa que deberá comprender cuáles son los códigos de retorno para cada consulta (podría ser diferente para cada consulta). El siguiente ejemplo verifica vgextend para el código de error -1, luego devuelve -1.
pvcreate /dev/$1
vgextend VolGroup00 /dev/$1
if [ $? == -1 ]; then
echo "vgextend returned an error"
exit -1;
fi
lvextend --size +$2 /dev/VolGroup00/LogVol00
resize2fs /dev/VolGroup00/LogVol00
Conjunto -puede ser exagerado, ya que algunos errores pueden ser tolerables bajo ciertas circunstancias. En el ejemplo a continuación, el rm devolverá un error si el archivo no existe, pero está bien continuar (Sí, sé que podríamos eliminarlo condicionalmente, pero el ejemplo está destinado a ilustrar el punto que se está creando)
# delete the file, it it exists
rm thefile
# create the file
touch thefile
yo aconsejaría a marcar estos comandos probable para quebrar por separado, como 'rm somefile || cierto'. En este caso, 'set -e' no se disparará. –