Compare commits
7 Commits
e265d95dd9
...
1.9
| Author | SHA1 | Date | |
|---|---|---|---|
| 91a330998b | |||
| 7628e01b69 | |||
| 7ab41a9829 | |||
| 684e62e0d8 | |||
| bc827535b9 | |||
| 1ba9b4ba52 | |||
| 88f7a07626 |
6
really-long-command
Executable file
6
really-long-command
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
for i in {1..4}; do
|
||||||
|
echo "[$$] finished ${i}/4 ticks"
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
46
spinner.sh
Executable file
46
spinner.sh
Executable file
@@ -0,0 +1,46 @@
|
|||||||
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
spinner_pid=
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
local name=${0##*/}
|
||||||
|
cat <<-EOF
|
||||||
|
Usage: ${name} {options] <cmd>
|
||||||
|
|
||||||
|
Run a command with an animated spinner.
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
spinner() {
|
||||||
|
local chars=('\' '|' '/' '-')
|
||||||
|
local c
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
for c in ${chars[@]}; do
|
||||||
|
printf "<%s>\r" "${c}"
|
||||||
|
sleep .2
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
echo "done"
|
||||||
|
if [[ -n ${spinner_pid} ]]; then
|
||||||
|
kill "${spinner_pid}"
|
||||||
|
fi
|
||||||
|
echo "[$$] finished spinner"
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
spinner &
|
||||||
|
spinner_pid=$!
|
||||||
|
|
||||||
|
if (( $# == 0)); then
|
||||||
|
usage >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
"$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
10
teil25/notrap
Executable file
10
teil25/notrap
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
touch /tmp/testfile
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
echo "Ende der Arbeit"
|
||||||
|
|
||||||
|
rm /tmp/testfile
|
||||||
|
|
||||||
23
teil25/on-exit.sh
Executable file
23
teil25/on-exit.sh
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
on_exit() {
|
||||||
|
echo "Programmende signalisiert."
|
||||||
|
}
|
||||||
|
|
||||||
|
on_debug() {
|
||||||
|
echo "debug handler"
|
||||||
|
echo "[DEBUG] counter=${counter}"
|
||||||
|
}
|
||||||
|
|
||||||
|
trap on_exit exit
|
||||||
|
trap on_debug debug
|
||||||
|
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
#counter=0
|
||||||
|
#while true; do
|
||||||
|
# let counter++
|
||||||
|
# echo "running..."
|
||||||
|
#done
|
||||||
|
|
||||||
|
|
||||||
15
teil25/sighup.sh
Executable file
15
teil25/sighup.sh
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
on_hup() {
|
||||||
|
echo "hup handler"
|
||||||
|
}
|
||||||
|
|
||||||
|
trap on_info SIGHUP
|
||||||
|
|
||||||
|
my_pid=$!
|
||||||
|
echo "${my_pid}"
|
||||||
|
while true; do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
15
teil25/trap
Executable file
15
teil25/trap
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
echo "Programmende signalisiert."
|
||||||
|
rm /tmp/testfile
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup exit
|
||||||
|
touch /tmp/testfile
|
||||||
|
|
||||||
|
#trap - exit
|
||||||
|
sleep 10
|
||||||
|
echo "Ende der Arbeit"
|
||||||
|
|
||||||
|
|
||||||
11
teil25/trap2
Executable file
11
teil25/trap2
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
trap "echo vorbei" SIGINT
|
||||||
|
|
||||||
|
touch /tmp/testfile
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
echo "Ende der Arbeit"
|
||||||
|
|
||||||
|
|
||||||
6
teil26/help.txt
Normal file
6
teil26/help.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Dies ist ein Beispiel für
|
||||||
|
einen mehrzeiligen Text,
|
||||||
|
der für einen Hilfetext steht.
|
||||||
|
|
||||||
|
Programm: ${0##*/}"
|
||||||
|
|
||||||
13
teil26/version1.sh
Executable file
13
teil26/version1.sh
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
# Version 1: Ausgabe über echo
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Dies ist ein Beispiel für"
|
||||||
|
echo "einen mehrzeiligen Text,"
|
||||||
|
echo "der für einen Hilfetext steht."
|
||||||
|
echo "Programm: ${0##*/}"
|
||||||
|
}
|
||||||
|
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
10
teil26/version2.sh
Executable file
10
teil26/version2.sh
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
# Version 2: Ausgabe einer externen Datei mit cat
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
cat help.txt
|
||||||
|
}
|
||||||
|
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
17
teil26/version3.sh
Executable file
17
teil26/version3.sh
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
# Version 3: Text als Heredoc innerhalb des Scripts
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
cat <<- EOF
|
||||||
|
Dies ist ein Beispiel für
|
||||||
|
einen mehrzeiligen Text,
|
||||||
|
der für einen Hilfetext steht.
|
||||||
|
|
||||||
|
Programm: ${0##*/}"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
18
teil26/version4.sh
Executable file
18
teil26/version4.sh
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
# Version 3: Text als Heredoc innerhalb des Scripts,
|
||||||
|
# diesmal mit Redirection in eine Datei.
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
cat <<- EOF > test.txt
|
||||||
|
Dies ist ein Beispiel für
|
||||||
|
einen mehrzeiligen Text,
|
||||||
|
der für einen Hilfetext steht.
|
||||||
|
|
||||||
|
Programm: ${0##*/}"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
Reference in New Issue
Block a user