Пожалуйста, не используйте сценарий, предоставленный веб-сайтом Nvidia, вы, вероятно, сломаете свою систему (и создадите FrankenDebian , как вы, кажется, уже сделали.
Жизнеспособным и стабильным методом является использование вики Debian, которая, вкратце, выглядит следующим образом:
$ lsb_release -a | grep Codename
contrib
и non-free
Вам необходимо изменить свой /etc/apt/sources.list
, добавив «contrib» и «non -free» после «main». Например, если вы используете «buster»:
deb http://httpredir.debian.org/debian/ buster main contrib non-free
# apt update
# apt install apt install linux-headers-$(uname -r|sed 's/[^-]*-[^-]*-//') nvidia-driver
# reboot
У вас должны быть все необходимые инструменты для получения статистики и настроек графического процессора, например nvidia-smi
и nvidia-settings
. Обратите внимание, что вам не нужно иметь xorg.conf
, так как хрипит, за исключением некоторой тонкой настройки -.
Вы можете использовать:
curl wttr.in/Pune?format=j1 | jq '.current_condition[].localObsDateTime'
Сjq
:
curl -s 'http://wttr.in/Pune?format=j1' | jq -r '.current_condition[].localObsDateTime'
Выход:
2021-11-11 03:01 AM
Если вы точно не знаете, где в документе JSON находится ключ localObsDateTime
, вам придется искать его рекурсивно. Вы можете сделать это, а затем извлечь его значение с помощью следующего jq
выражения:
.. | select(type == "object" and has("localObsDateTime")).localObsDateTime
По сути, это говорит: «Для каждой отдельной вещи в документе, если это объект и имеет ключ с именем localObsDateTime
, извлеките значение этого ключа».
Вы также можете сократить его до
.. |.localObsDateTime? // empty
, в котором говорится: «Для каждой отдельной вещи в документе попробуйте извлечь значение localObsDateTime
, если оно существует, а если оно не существует или его значение равно null
, просто не давайте мне ничего».
Вы бы запустили это вот так:
$ curl -s 'http://wttr.in/Pune?format=j2' |
jq -r '.. | select(type == "object" and has("localObsDateTime")).localObsDateTime'
2021-11-17 12:16 AM
или,
$ curl -s 'http://wttr.in/Pune?format=j2' |
jq -r '.. |.localObsDateTime? // empty'
2021-11-17 12:16 AM
Опция -r
для jq
заставляет утилиту возвращать декодированную текстовую строку, а не строку JSON.
Обратите внимание, что вышеприведенное возвращает значения всех клавиш localObsDateTime
. Если вам нужен только первый из них, используйте вместо этого следующее выражение jq
:
[.. | select(type == "object" and has("localObsDateTime")).localObsDateTime ][0]
или,
[.. |.localObsDateTime? // empty ][0]
Это создает массив всех значений, а затем извлекает первое.
Обратите внимание, что использование j2
вместо j1
в URL-адресе приводит к тому, что документ JSON в ответе становится меньше.