Генерируйте время как выражение 1/1000ths дня

При использовании Red Hat Enterprise Linux это происходит, что пакет, который Вы ищете, находится в EPEL, таким образом, можно установить это:

sudo rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

и затем Вы можете yum install ncdu.

При использовании древнего Red Hat Linux ответ из любви ко всему, что является святым, время для обновления до Fedora.

3
29.09.2011, 00:48
1 ответ

Во-первых, вот то, как показать число часов, минуты и секунды протекли с начала дня:

date +%H:%M:%S

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

s=$(($(date +"%H*3600+%M*60+%S")))

Это возвращает много частей 1/86400-го изо дня. Для получения 1/1000ths выполните немного больше арифметики:

t=$(($s * 1000 / 86400))

который может быть уменьшен до

t=$(($s * 5 / 432))
3
27.01.2020, 21:24
  • 1
    Спасибо, это точно, что я пытался сделать в голове. Так, я добрался до: #!/bin/bash clear s=$(($(date +"%H * 3600 + %M * 60 + %S"))) t=$(($s * 5 / 432)) ... но, имея только запускающийся пытающийся узнать об ударе этим утром, я не уверен, куда пойти отсюда до вывода число. Мне нужна некоторая команда эха? Я использую этот сценарий с текстовым расширителем и до сих пор что я имею, не производит ничего жизнеспособного... –  Jack Anders 29.09.2011, 01:36
  • 2
    echo $t после того, как calulations не дает Вам корректный ouput? –  frogstarr78 29.09.2011, 04:58
  • 3
    @Jack Anders: использование echo "$varname" работы, как делает printf "%d" "$varname" (используйте %d, %s, и т.д. как потребность быть)... 'printf' требует немного большего количества ввода, но намного более гибок, и избегает случайной причуды 'эха', в котором это не может дифференцироваться между опцией (например: -n или -e и что это, как предполагается, 'повторяет'; когда первое слово текста, который будет отражен, совпадает с опцией. (много утилит позволяют Вам использовать -- указать на конец опций. Однако 'эхо' не имеет этого '-' опция. –  Peter.O 29.09.2011, 06:26
  • 4
    Хорошо! ничего себе. Спасибо все для Вашей справки, я соединил сценарий, который создает метки времени, в которых я нуждаюсь: #!/bin/bash очищают s= $ (($ (дата + "%H*3600 + % M*60 + % S"))) t= $ (($s * 5 / 432)) d= $ (дата + %j) y= $ (дата + %Y) printf "$d" "$y" "$y'$d'$t" "$t"', Но когда время представляется, мне нужен он, чтобы всегда отобразиться в трех цифрах (т.е., oo1, 098...), даже если число - меньше чем 100. Какое-либо предложение о том, как я мог выполнить это? –  Jack Anders 29.09.2011, 17:02

Теги

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