shelllings

a practical way to learn shell
git clone https://git.davidvoz.net/shelllings.git
index
logs
tree
license

31_trap.sh
1#!/bin/sh
2
3set -eu
4RED="\033[31m"
5GREEN="\033[32m"
6RESET="\033[0m"
7
8cleanup() {
9 [ -f "file.txt" ] && rm -f file.txt
10}
11trap cleanup EXIT
12
13failed() {
14 printf "${RED}Failed${RESET}\n"
15 exit 1
16}
17
18sh exercises/31_trap.sh | grep -Eq "Removing..." || failed
19
20grep 'trap' exercises/31_trap.sh | grep "rm file\.txt" | grep 'Removing...' | grep -q 'EXIT' || failed
21
22[ -f "file.txt" ] && failed
23
24printf "${GREEN}Passed${RESET}\n"