Привет, ребята, я всегда использую
sudo apt-get install <package-name>
для установки любого пакета, и каждый раз, когда я запускаю эту команду, я наблюдаю одну вещь
Каждый раз, когда она говорит
Downloading some packages (78%)
Эта строка, однажды напечатанная , никогда не меняет свою позицию , но вместо этого она продолжает обновлять себя процентными значениями, в то время как другие вещи изменяют эту линия остается постоянной ! Как они это делают?
Я знаю, что это не типичный вопрос Askubuntu, но как программист мне очень интересно узнать ответ.
Спасибо заранее!
Вам, вероятно, нужно посмотреть, что делает echo -ne '\r'
.
Вот пример:
echo -ne 'Downloading 1%\r'
sleep 1
echo -ne 'Downloading 100%\r'
sleep 1
echo -ne '\n'
То, что Джобин сказал правильно, они делают это с возвратом каретки "\ r". Тем не менее, я думаю, что OP искал реальный пример программирования.
Теперь я не на 100% знаком с синтаксисом C / C ++, но вот рабочий пример Python:
Откройте Терминал и введите «python», чтобы начать писать сценарии.
Введите следующую строку кода для строки, как только вы наберете последнюю строку, дважды нажмите клавишу ВВОД и посмотрите, как она работает. Убедитесь, что после части «for i in range (11):» в следующих строках вы ДОЛЖНЫ нажать клавишу TAB, чтобы сделать отступ. Это правильное форматирование Python. Если вы не нажмете TAB, вы получите ошибку.
import sys
import time
for i in range(11):
time.sleep(1)
i=i*10
sys.stdout.write("\rDownload is %d%% complete!" %i)
sys.stdout.flush()
Так что это ВИД, как терминал делает то, о чем вы спрашивали.