Как сделать так, чтобы индикатор выполнения оставался на экране в bash?

Я новичок в сценариях bash и хотел бы сделать простой индикатор выполнения

init pb
do stuff
pb add 10%
do other stuff
...

Но сценарии, которые будут обедать, будут печатать какой-то журнал, и я не хочу, чтобы индикатор выполнения исчезал, я бы хотел, чтобы он оставался внизу экрана. Это возможно ?

большое спасибо,

Артур

Вот мой код:

#!/bin/bash
echo 'Welcome to autoIrc'
echo 'This will automaticly create a gephi file for you'
echo 'I suggest running the script in a screen if you are with ssh'
# Are you sure ?
location=`pwd`
echo "We are in $location. Do you want to install the script there ? [Y/n]"
read -p 'Y/n >' confirm
if [ $confirm != "Y" ]
then
    echo "I am exiting"
    exit
fi
clear
echo 'Cleaning up...'
echo -e "\e[100m"
echo "We are in $location."
echo "Files list here:"
echo `ls ./`
echo "File list in ../"
echo `ls ../`
rm ./ircsnapshot -R
echo -e "\e[49m"
clear
# Okay, now, go on
echo 'First, a bit of config'
read -p "Please enter the bot nickname >" nickname
read -p "Please enter the bot username >" username
read -p "Please enter the bot realname >" realname
read -p "Now, please enter the number of seconds between commands >" throttle
read -p "Please enter the server adress >" server

# Git, python, toilet
echo 'Downloading dependencies. You may have to enter your SU password.'
echo -e "\e[100m"
sudo apt-get update -y && apt-get install -y git python toilet
echo -e "\e[49m"
clear
echo 'Dependencies are now installed.'

# Main script
echo 'Cloning the script from github to here'
echo -e "\e[100m"
git clone https://github.com/bwall/ircsnapshot.git
echo -e "\e[49m"
cd "./ircsnapshot/ircsnapshot"
location=`pwd`
echo "We are in $location."
echo "Files list here:"
echo `ls ./`
echo "File list in ../"
echo `ls ../`
echo -e "\e[41m"
rm ./example.png
echo -e "\e[49m"
clear
# GeoIP data
echo "I will download the database"
echo -e "\e[100m"
wget -O geolite.zip http://geolite.maxmind.com/download/geoip/database/GeoLiteCity_CSV/GeoLiteCity-latest.zip
echo -e "\e[49m"
clear
echo 'Download complete. Unzipping'
echo -e "\e[100m"
unzip geolite.zip -d ./GeoLiteData
echo -e "\e[49m"

mv ./GeoLiteData/*/* ./GeoLiteData

clear
echo "Is it OK ?"
ping -c 1 $server
# script
clear
echo "We are in $location."
echo "Files list here:"
echo `ls ./`
echo "File list in ../"
echo `ls ../`
echo "I will lunch the script now It will print some lines and take some time'"
echo -e "\e[100m"
python "./ircsnapshot.py" "-n $nickname" "-u $username" "-r $realname" "$server"
echo -e "\e[49m"
# 2nd script
echo 'Great !'
clear
echo "I'll now convert the json generated to something readable by gephi"
echo "This will take some time"
echo -e "\e[100m"
sudo chmod +x ./to.gexf.py
var=$(./to.gexf.py -m "./GeoLiteData" "UserToLink" "./$server.json")
echo -e "\e[49m"
clear
echo 'Good.'
gexf="./$server.gexf"
echo "$var" >> "$gexf"
echo "Here it is : ./ircsnapshot/ircsnapshot/$gexf"
toilet -t --filter gay Finished install !
exit

РЕДАКТИРОВАТЬ: «Дубликат» не показывает индикатор выполнения, который остается в нижней части экрана.


person WayToDoor    schedule 13.06.2014    source источник
comment
Чтобы индикатор выполнения оставался внизу экрана, вам, вероятно, понадобится графическая библиотека терминала, например ncurses.   -  person Chris    schedule 13.06.2014
comment
Не могли бы вы привести пример? Спасибо :)   -  person WayToDoor    schedule 14.06.2014
comment
Это не ответ, а просто толчок в правильном направлении. У меня нет большого опыта работы с ncurses.   -  person Chris    schedule 14.06.2014
comment
ууууу. Я не понимаю, как им пользоваться. А теперь, поскольку тема закрыта (дубликат), я не получу никакого ответа: c   -  person WayToDoor    schedule 14.06.2014
comment
Найдите ncurses учебные пособия. К вашему сведению, это не просто команда, которую вы можете использовать в скрипте. Скорее всего, вам придется написать программу на C или что-то в этом роде.   -  person Chris    schedule 14.06.2014