Как выполнять перехват ошибок и замену в случае ошибки / предупреждения?

Псевдокод, в котором неполный псевдопопытка-catch после комментария cas

#!/usr/bin/env bash
# http://askubuntu.com/q/799834/25388    
# Use: `sh myScript`; sudo does not work with Matlab. 

#set -e # no rudimentary error checking
# https://stackoverflow.com/a/69808/54964

SWAP_FILE="/media/masi/SamiSwapVirtual/.swap_file_20.7.2016"
SIZE_MB="1000"
TO_RUN="matlab"

sudo dd if="/dev/zero" of="${SWAP_FILE}" bs="1M" count="${SIZE_MB}" status="progress"
sudo mkswap "${SWAP_FILE}"
sudo chmod 0600 "${SWAP_FILE}"
sudo chown root:root "${SWAP_FILE}" # http://unix.stackexchange.com/a/297153/16920

# TODO error-handling if any error, do swap
# Error-trapping here as here https://stackoverflow.com/a/185900/54964 ?   
# 
# My proposal where I am not sure about how to connect the commands inside the first block in braces
# 
# https://stackoverflow.com/a/22010339/54964
{
        sudo swapon -v "${SWAP_FILE}"
        echo "Swap enabled. Press enter to continue"; read
        "${TO_RUN}"
} || {
        echo "I will remove the swap. Press enter to continue"; read
        sudo swapoff -v "${SWAP_FILE}"
        rm -vf "${SWAP_FILE}"
        exit 1
}

echo "I will remove the swap. Press enter to continue"; read
sudo swapoff -v "${SWAP_FILE}"
rm -vf "${SWAP_FILE}"

Выход

dd: failed to open '/media/masi/SamiSwapVirtual/.swap_file_20.7.2016': Permission denied
mkswap: cannot open /media/masi/SamiSwapVirtual/.swap_file_20.7.2016: Permission denied
chmod: changing permissions of '/media/masi/SamiSwapVirtual/.swap_file_20.7.2016': Operation not permitted
[sudo] password for masi: 

Open

  • dd и mkswap дает В доступе отказано , иногда в зависимости от диска, поэтому есть sudo .
  • Как можно указать, что перед запуском каких-либо команд в первом блоке фигурных скобок он запрашивает пароль?

Система: Linux Ubuntu 16.04 64 бит Ядро Linux: 4.6
Оборудование: Macbook Air, середина 2013 г.
Связанная ветка: Обработка ошибок в BASH

-2
23.05.2017, 15:40
0 ответов

Теги

Похожие вопросы