Загрузите последнюю версию Slack автоматически - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть скрипт, который я загружаю slack с помощью команды wget, так как скрипт запускается каждый раз, когда конфигурируется компьютер, мне нужно всегда загружать последнюю версию slack.

я работаю в debian9

Я делаю это прямо сейчас:

wget https://downloads.slack-edge.com/linux_releases/slack-desktop-3.3.7-amd64.deb

, и я попробовал это:

curl -s https://slack.com/intl/es/release-notes/linux | grep "<h2>Slack" | head -1 | sed 's/[<h2>/]//g' | sed 's/[a-z A-Z]//g' | sed "s/ //g"

это возвращение: 3.3.7 добавить это к: wget https://downloads.slack-edge.com/linux_releases/slack-desktop-$curl-amd64.deb

и не работает.

Знаете ли вы, почему это не может работать?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019
echo wget "https://downloads.slack-edge.com/linux_releases/slack-desktop-$(curl -s "https://slack.com/intl/es/release-notes/linux" | xmllint --html --xpath '//h2' - 2>/dev/null | head -n1 | sed 's/<h2>//;s#</h2>##;s/Slack //')-amd64.deb"

выведет:

wget https://downloads.slack-edge.com/linux_releases/slack-desktop-3.3.7-amd64.deb

Я использовал xmllint для анализа html и извлечения первой части между тегами <h2>.Затем некоторые удаляют с помощью sed, и я получаю самую новую версию.

@ edit:

Заметив, что вы можете просто grep <h2> с сайта получить версию, вы можетеверсия только с:

curl -s "https://slack.com/intl/es/release-notes/linux" | grep -m1 "<h2>" | cut -d' ' -f2 | cut -d'<' -f1
0 голосов
/ 12 февраля 2019

Ваш сценарий создает длинную строку с большим количеством начальных пробелов.

bash$ curl -s https://slack.com/intl/es/release-notes/linux |
> grep "<h2>Slack" | head -1 |
> sed 's/[<h2>/]//g' | sed 's/[a-z A-Z]//g' | sed "s/ //g"
                                    3.3.7

Вам нужна строка без пробелов, и длинный конвейер может быть значительно упрощен.

barh$ curl -s https://slack.com/intl/es/release-notes/linux |
> sed -n "/^.*<h2>Slack /{;s///;s/[^0-9.].*//p;q;}"
3.3.7

Обратите внимание также, что класс персонажа [<h2>/] совсем не означает, что вы думаете.Он соответствует одному символу, который < или h или 2 или > или / независимо от контекста.Так, например, если бы номер текущей версии содержал цифру 2, вы бы тоже ее убрали.

Хотя скребание очень хрупкое.Я замечаю, что если я изменю /es/ в URL-адресе на /en/, я вообще ничего не получу.Возможно, вы сможете найти лучший способ получить самую новую версию (использование apt должно позволить вам установить самую новую версию без каких-либо сценариев на вашей стороне).

...