second commit
This commit is contained in:
Executable
+42
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Clears the entire current line regardless of terminal size.
|
||||
# See the magic by running:
|
||||
# { sleep 1; clear_this_line ; }&
|
||||
clear_this_line(){
|
||||
printf '\r'
|
||||
cols="$(tput cols)"
|
||||
for i in $(seq "$cols"); do
|
||||
printf ' '
|
||||
done
|
||||
printf '\r'
|
||||
}
|
||||
|
||||
# Erases the amount of lines specified.
|
||||
# Usage: erase_lines [AMOUNT]
|
||||
# See the magic by running:
|
||||
# { sleep 1; erase_lines 2; }&
|
||||
erase_lines(){
|
||||
# Default line count to 1.
|
||||
test -z "$1" && lines="1" || lines="$1"
|
||||
|
||||
# This is what we use to move the cursor to previous lines.
|
||||
UP='\033[1A'
|
||||
|
||||
# Exit if erase count is zero.
|
||||
[ "$lines" = 0 ] && return
|
||||
|
||||
# Erase.
|
||||
if [ "$lines" = 1 ]; then
|
||||
clear_this_line
|
||||
else
|
||||
lines=$((lines-1))
|
||||
clear_this_line
|
||||
for i in $(seq "$lines"); do
|
||||
printf "$UP"
|
||||
clear_this_line
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
erase_lines "$1"
|
||||
Reference in New Issue
Block a user