Командная строка для отступа Bash-скрипта
Привет! Я использовал следующий скрипт, который после его запуска и выхода заставляет мою командную строку не отображать текст при наборе текста и после каждого возврата каретки вместо начала новой строки, как
root@alix:~#
root@alix:~#
я получил
root@alix:~# root@alix:~# root@alix:~# root@alix:~# etc
При использовании Ctrl C я получаю
root@alix:~#
root@alix:~#
root@alix:~# etc
Вот сценарий:
#!/bin/bash
###
### Run command for given number of seconds then kill it
###
read -p "How long should I run for? ==> " count_secs
echo "Time specified: " $count_secs
if [ $count_secs -gt 0 ]
then
###
### number of seconds greater than zero
###
watch -n 0.5 'iw dev wlan0 station dump | grep "signal avg" >> processmonitor.log' >>/dev/null &
###
### assume that the PID of the command is $$
###
my_PID=$!
sleep $count_secs
kill -15 $my_PID
fi
Благодарю.
1 ответ
Вы можете использовать следующий код без необходимости убивать какой-либо процесс, по истечении указанного времени (с) он завершится.
#!/bin/bash
###
### Run command for given number of seconds then kill it
###
read -p "How long should I run for? ==> " count_secs
echo "Time specified: " $count_secs
# $SECONDS is a shell variable
# we can use it in conjuction with
# our user input
while [ "$SECONDS" -le "$count_secs" ]
do
# execute any commands here (put your code bellow and remove echo commands)
echo `date +%r`
echo "i am doing my work now"
# sleep (in secs) before the next execution
sleep 1
done
# when the count_secs elapses exit
exit 0