Blink/Flash Text -Shell Script

3

2

I have a bash script where I'm zipping some files. This process sometimes takes time depending on the file sizes. I want to get the pid of this command and display a flashing message "Zipping..." until the process completes, something like the following:

zip -r test.zip *.php > /dev/null &
pid=$!
while (kill -0 $pid)
do clear
sleep 1
echo "Zipping......."
sleep  1
done

Is $pid the accurate PID of the zip command I'm running?

smokinguns

Posted 2011-05-07T21:13:17.840

Reputation: 1 188

First off, you don't need all those semicolons. You also need a space after sleep, so it'd be sleep 1. – Wuffers – 2011-05-07T21:26:41.017

Answers

4

You can make TEXT blink by:

printf "\x1b[5mTEXT\x1b[25m"

With some clean-up:

zip -r test.zip *.php > /dev/null &
pid=$!

while (kill -0 $pid) ; do
    clear
    printf "\x1b[5mZipping...\x1b[25m"
    sleep 1
done

With some more clean-up:

zip -r test.zip *.php > /dev/null &
clear
printf "\x1b[5mZipping...\x1b[25m"
wait $!
clear

cYrus

Posted 2011-05-07T21:13:17.840

Reputation: 18 102