Я пытался сделать сценарий, и в этом сценарии я хотел бы обновить имя папки и набор других вещей с помощью переменной.
папка, которую я создаю, будет названной именем выпуска последней версии, которое она имеет на GitHub.
#!/bin/sh
content=$(curl -s -L https://github.com/FAForever/client/releases)
fl=tr '\n' ' ' < $content | grep -E "^<div class=\"release-title\">.*</div>$"
echo $fl
#!/bin/sh
s=$(curl -s https://github.com/FAForever/client/releases | grep "div class='release-title'")
echo "$s"
Я посмотрел на всем протяжении сети для этого, и никто не делает эту определенную установку (исходное завихрение / выходной var оболочки)
у всех есть своего рода ввод или вывод файла или другой, и я не могу использовать их решения.
каков правильный синтаксис в оболочке, чтобы захватить содержание только одного класса и сохранить его в переменной оболочки?
Спасибо.
github API https://api.github.com / возвраты json, который является, могут быть приятно уплотнены с инструментом jq
командной строки, В чем Вы нуждаетесь? список выпусков?... попробуйте это
curl https://api.github.com/repos/FAForever/client/releases | jq .[].tag_name
, который дает Вам, производит
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 107k 100 107k 0 0 314k 0 --:--:-- --:--:-- --:--:-- 314k
"0.12.0-pre2"
"0.12.0-pre1"
"0.11.60-p1"
"0.11.61-pre2"
"0.11.61-pre"
"0.11.60"
"0.11.59-pre"
"0.11.58"
"0.11.57"
"0.11.55"
"0.11.54"
"0.11.53"
"0.11.52"
"0.11.51"
"0.11.50"
"0.11.49"
"0.11.47"
"0.11.16+291"
"0.11.14"
"0.11.8+270"
"0.11.7+267"
"0.11.3+247"
"0.11.0"
"0.10.125"
"0.10.124"
"0.10.123"
"0.10.124-pre"
"0.10.123-pre"
"0.11-pre-3"
"0.11-pre-2"
, если Вы говорите, "Просто показывают мне последнее" затем выпуск
sudo apt-get install jq
curl --silent https://api.github.com/repos/FAForever/client/releases | jq .[].tag_name|sort -n|tail -1
с выводом
"0.12.0-pre2"
теперь для связывания в сценарий оболочки vi show_latest.sh
#!/bin/bash
latest_release=$(curl --silent https://api.github.com/repos/FAForever/client/releases | jq .[].tag_name|sort -n|tail -1)
echo latest_release $latest_release
, который генерирует вывод
latest_release "0.12.0-pre2"
То же как ответ Scott, но использование Python вместо этого.
curl https://api.github.com/repos/FAForever/client/releases | python -c 'import sys,json; print "\n".join(map(lambda x: x["tag_name"],json.load(sys.stdin)))'