Nie musisz umieszczać odczytu w każdym wierszu, po prostu dodaj do swojego skryptu basha pułapkę, taką jak poniżej, ma to efekt, który chcesz, np.
#!/usr/bin/env bash
set -x
trap read debug
< YOUR CODE HERE >
Działa, właśnie przetestowałem go z bash v4.2.8 i v3.2.25.
POPRAWIONA WERSJA
Jeśli Twój skrypt odczytuje zawartość z plików, powyższe elementy nie będą działać. Sposób obejścia może wyglądać jak w poniższym przykładzie.
#!/usr/bin/env bash
echo "Press CTRL+C to proceed."
trap "pkill -f 'sleep 1h'" INT
trap "set +x ; sleep 1h ; set -x" DEBUG
< YOUR CODE HERE >
Aby zatrzymać skrypt, w tym przypadku musiałbyś go zabić z innej powłoki .
ALTERNATYWA 1
Jeśli chcesz po prostu odczekać kilka sekund przed przejściem do następnego polecenia w skrypcie, może Ci się przydać następujący przykład.
#!/usr/bin/env bash
trap "set +x; sleep 5; set -x" DEBUG
< YOUR CODE HERE >
Dodaję set + x i set -x w poleceniu trap, aby dane wyjściowe były bardziej czytelne.