Почему байты, следующие за расширением переменной в строке с двойными кавычками, переопределяют предшествующие байты?

Вы можете использовать только ту версию CUDA, которая совместима с вашими драйверами. Вы можете проверить совместимость из примечаний к выпуску CUDA , для версии драйвера 390.116 самая высокая поддерживаемая версия CUDA — 9.1.

Вы можете загрузить различные версии с страницы загрузки CUDA . Вы можете загрузить файл запуска и установить необходимые компоненты в /usr/local. Вам не следует не устанавливать драйвер, который предлагает установщик, так как он заменит драйвер, упакованный в ваш дистрибутив (и, возможно, позже )вызовет проблемы с управлением пакетами/обновлениями ядра.

3
24.02.2020, 20:49
2 ответа

Строка, возвращаемая curl, заканчивается строкой возврата каретки --. (MS -конец строки dos ). Перевод строки -удаляется инструментами Unix, однако остается возврат каретки -в конце.

Исправьте эту строку, чтобы использоватьdos2unix(и процитируйте свой аргумент в echo, чтобы избежать ошибок, описанных в BashPitfalls #14):

version="$(echo "${tag//v}" | dos2unix)"

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

version=${tag//[$'v\r']/}

dos2unixвносят некоторые другие изменения (, такие как добавление завершающей новой строки после последней строки текста, что требуется для UNIX, но не для DOS ), но ни одно из них не имеет значения для одной строки -, подобной этой.

16
28.04.2021, 23:22

ctrl -alt -делор ответ объясняет, почему вы видите такое поведение; но для достижения вашей основной цели я рекомендую использовать GitHub API вместо интерпретации «последнего» перенаправления:

version=$(curl https://api.github.com/repos/gohugoio/hugo/releases/latest | jq -r '.tag_name | ltrimstr("v")')

Это запрашивает у API информацию о последнем выпуске Hugo и извлекает имя тега, используя jq, удаляя любую начальную букву «v».

В идеале вы даже должны извлекать имена ресурсов и URL-адреса из возвращенного JSON.

14
28.04.2021, 23:22

Теги

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