Обычно сначала нужно проверить название канала:
$ nix-channel --list
nixpkgs https://nixos.org/channels/nixpkgs-unstable
Как только вы узнаете имя канала, в данном случае nixpkgs
, вы можете приступить к установке:
$ nix-env -iA nixpkgs.google-chrome
installing ‘google-chrome-64.0.3282.186’
..................
Кроме того, вы можете выполнить поиск по полному имени перед выполнением установки:
$ nix-env -qaP google-chrome
nixpkgs.google-chrome google-chrome-64.0.3282.186
#!/bin/bash
timestamp=$( date -d '2017-01-01 12:00' +%s )
while [ "$thedate" != '31/12/2019' ]; do
printf -v thedate '%(%d/%m/%Y)T' "$timestamp"
timestamp=$(( timestamp + 86400 ))
printf '%s\n' "$thedate"
done
Приведенный выше сценарий сначала использует GNU date
для получения метки времени UNIX для полудня начальной даты (, она будет1483268400
). Затем он повторяется до тех пор, пока не будет найдена и выведена конечная дата. На каждой итерации мы увеличиваем timestamp
на 86400 секунд (24 часа ).
Строки даты создаются с помощью встроенной -в printf
утилиты в bash
, которая способна форматировать строку даты и времени из временной метки UNIX с ее форматом %(...)T
(для этого требуется bash
версия 4.3 или более поздняя ). Он также печатает непосредственно в переменную thedate
с -v
.
В некоторых системах без GNU date
вы могли бы получить метку времени начала с помощью встроенной утилиты date
, используя другой формат аргументов командной строки. В OpenBSD, например, это делается с помощью
date -j +%s 201701011200
См. man date
для вашего конкретного Unix.
Также можно использовать некоторые расширенные реализации awk
.:
awk 'BEGIN { print mktime("2017 01 01 12 00 00") }'
Но если у вас есть такойawk
(GNU awk
или mawk
), то вы можете сделать все это вawk
:
awk '
BEGIN {
timestamp = mktime("2017 01 01 12 00 00")
while (thedate != "31/12/2019") {
thedate = strftime("%d/%m/%Y", timestamp)
timestamp += 86400
print thedate
}
}'
Вам потребуется добавить вложенный цикл for -с первой итерацией для года и следующего -месяца. для каждого месяца вы будете делать то, что уже сделали, печатая месяц и год в конце awk.