Как заставить часы отображать свой вывод в центре экрана?

Каждый раз, когда я использую команду watch в терминале, вывод выводится с начала экрана, и это кажется немного неудобным. Я надеюсь, что часы будут отображаться на экране в центре экрана.

$ watch -n 1 du -hs "*.part" 52K Prince of Tennis Episode 100 English Subbed Online - Chia-Anime.mp4.part 64M Prince of Tennis Episode 92 English Subbed Online - Chia-Anime.mp4.part 53M Prince of Tennis Episode 93 English Subbed Online - Chia-Anime.mp4.part 23M Prince of Tennis Episode 94 English Subbed Online - Chia-Anime.mp4.part 13M Prince of Tennis Episode 95 English Subbed Online - Chia-Anime.mp4.part 24K Prince of Tennis Episode 96 English Subbed Online - Chia-Anime.mp4.part 12K Prince of Tennis Episode 97 English Subbed Online - Chia-Anime.mp4.part 40K Prince of Tennis Episode 98 English Subbed Online - Chia-Anime.mp4.part 36K Prince of Tennis Episode 99 English Subbed Online - Chia-Anime.mp4.part

Я хочу, чтобы этот вывод начинался с центра экрана.

1
задан 10 June 2017 в 09:16

3 ответа

Вы можете комбинировать watch и printf, чтобы создать желаемый результат.

Вот пример скрипта:

#!/bin/bash
columns="$(tput cols)"
du -hs *.part | while read i; do
   printf "%*s\n" $(( (${#i} + columns) / 2)) "$i"
done

Сохраните его с именем типа script.sh и запустите его так:

watch bash script.sh

вывод будет:

                            4.0K    myfile
                            4.0K    anotherfile
                        54M coreutils-8.25
            28K coreutils_8.25-2ubuntu2.debian.tar.xz
                 4.0K   coreutils_8.25-2ubuntu2.dsc
                 5.5M   coreutils_8.25.orig.tar.xz

Вот еще один скрипт:

#!/bin/bash

for i in *.part
do
 title=`du -hs "$i"`
 echo -e "\t\t\t\t$title\n"
done

запустите его:

watch bash myscript.sh

он покажет вам, что результат выглядит так:

                    4.0K    myfile

                    4.0K    anotherfile

                    54M     coreutils-8.25

                    28K     coreutils_8.25-2ubuntu2.debian.tar.xz

                    4.0K    coreutils_8.25-2ubuntu2.dsc

                    5.5M    coreutils_8.25.orig.tar.xz

Используйте столько \t, что вам нужно получить желаемый результат.

0
ответ дан 22 May 2018 в 21:41
  • 1
    Почему это перемещает результат в эту позицию, когда вы добавили '', и мне любопытно, и я не могу заставить мои печатать foo, а я вижу tfoo – George Udosen 10 June 2017 в 08:57
  • 2
    Вы уверены? для третьей команды он должен печатать foo, руководство, похоже, не говорит ничего полезного, но предлагает проверить некоторые цитаты, вот как я нашел об этом ... – Ravexina 10 June 2017 в 09:06
  • 3
    Linux никогда не впечатляет меня, когда-либо dragon спасибо, что никогда не знал много о watch, будет практиковать его использование :) – George Udosen 10 June 2017 в 09:08
  • 4
    извините за позднее изменение, но верьте, что printf не может использоваться для приведенного выше примера. – devilz 10 June 2017 в 09:20
  • 5
    @devilz см. мое обновление. – Ravexina 10 June 2017 в 19:00

Вы можете комбинировать watch и printf, чтобы создать желаемый результат.

Вот пример скрипта:

#!/bin/bash columns="$(tput cols)" du -hs *.part | while read i; do printf "%*s\n" $(( (${#i} + columns) / 2)) "$i" done

Сохраните его с именем типа script.sh и запустите его так:

watch bash script.sh

вывод будет:

4.0K myfile 4.0K anotherfile 54M coreutils-8.25 28K coreutils_8.25-2ubuntu2.debian.tar.xz 4.0K coreutils_8.25-2ubuntu2.dsc 5.5M coreutils_8.25.orig.tar.xz

Вот еще один скрипт:

#!/bin/bash for i in *.part do title=`du -hs "$i"` echo -e "\t\t\t\t$title\n" done

запустите его:

watch bash myscript.sh

он покажет вам, что результат выглядит так:

4.0K myfile 4.0K anotherfile 54M coreutils-8.25 28K coreutils_8.25-2ubuntu2.debian.tar.xz 4.0K coreutils_8.25-2ubuntu2.dsc 5.5M coreutils_8.25.orig.tar.xz

Используйте столько \t, что вам нужно получить желаемый результат.

0
ответ дан 18 July 2018 в 11:53

Вы можете комбинировать watch и printf, чтобы создать желаемый результат.

Вот пример скрипта:

#!/bin/bash columns="$(tput cols)" du -hs *.part | while read i; do printf "%*s\n" $(( (${#i} + columns) / 2)) "$i" done

Сохраните его с именем типа script.sh и запустите его так:

watch bash script.sh

вывод будет:

4.0K myfile 4.0K anotherfile 54M coreutils-8.25 28K coreutils_8.25-2ubuntu2.debian.tar.xz 4.0K coreutils_8.25-2ubuntu2.dsc 5.5M coreutils_8.25.orig.tar.xz

Вот еще один скрипт:

#!/bin/bash for i in *.part do title=`du -hs "$i"` echo -e "\t\t\t\t$title\n" done

запустите его:

watch bash myscript.sh

он покажет вам, что результат выглядит так:

4.0K myfile 4.0K anotherfile 54M coreutils-8.25 28K coreutils_8.25-2ubuntu2.debian.tar.xz 4.0K coreutils_8.25-2ubuntu2.dsc 5.5M coreutils_8.25.orig.tar.xz

Используйте столько \t, что вам нужно получить желаемый результат.

0
ответ дан 24 July 2018 в 19:52

Другие вопросы по тегам:

Похожие вопросы: