2016-12-11 1 views
0

Я хочу написать сценарий bash в Linux, который показывает скорость загрузки моего интернета в определенное время + день, за которым следует скорость загрузки.Bash scripting linux: Layout и вывод скрипта

информация должна быть сохранена в виде файла на той же линии, я хочу второй сценарий, чтобы показать скорость в каком-то «графика», как показано ниже:

24/11/2016 12:01 ********** 5.2MB/s 
24/11/2016 12:03 ******* 3.5MB/s 
24/11/2016 12:05 ******** 3.9MB/s 

Я использую speedtest- cli -simple, эта команда показывает скорость загрузки и выгрузки.

Теперь это мой первый сценарий:

while true; do 
    date “´%x %X” >> Test.txt 
    speedtest-cli –simple >Speedtest.txt 
    sed '2!d' speedtest.txt >> Test.txt 
    rm Speedtest.txt 
    sleep 20 
done 

Сейчас я хочу, чтобы работать, пока я не решу, чтобы остановить сценарий. Но моя проблема заключается в том, что дата и скорость загрузки не сохраняются в одной строке. (также я не могу понять, как просто вывести скорость загрузки, поэтому я использую sed'2! d ', чтобы удалить все, кроме вывода строки загрузки, и поместить его в основной файл, хотя он будет отображаться как «скачать: 2.1MB/s ")

Отображение даты корректно и графическое изображение, где возникают проблемы позже, но мне интересно, как поместить вывод команд рядом друг с другом, если я знаю, что я найду способ отображения даты, за которым следует графики и скорости загрузки в одной строке.

ответ

1

делать это без использования каких-либо временных файлов:

while sleep 20;do 
    echo $(date "+%x %X") $(speedtest-cli --simple|grep ^Download) >> Test.txt 
done 
+1

Вы должны обернуть некоторые вещи в одинарные и двойные кавычки: 'Printf '% s% s \ N'«$ (date "+% x% X") "" $ (speedtest-cli --simple | grep '^ Скачать') "' – andlrc

+0

Спасибо! Но у меня все еще есть проблема. Я хочу, чтобы он отображал ТОЛЬКО скорость загрузки. Когда я использую echo $ (speedtest | grep^Скачайте его: «Загрузить: 52.2 Mb/s» Есть ли способ отобразить только скорость? Потому что мне нужен этот «параметр для графики, я собираюсь создать во втором скрипте –

+0

'grep -oP '^ Загрузить: \ K. *'' –

0

(От this question) Вы можете просто использовать echo -n <text>, чтобы устранить разлад в конце. Например, сделайте следующее:

echo -n `date "+%x %X"` >> Test.txt 
Смежные вопросы