스크립트를 통해 github의 최신 파일을 가져옵니다.

스크립트를 통해 github의 최신 파일을 가져옵니다.

나도 같은 일을하려고 노력하고 있습니다https://github.com/eneshecan/whatsapp-for-linux/releases여기에 설명된 대로:터미널을 통해 github에서 최신 deb 패키지를 다운로드하고 설치하세요. 하지만 작동할 수 없습니다. URL이 소스 코드에는 없고 브라우저에만 표시되는 것 같나요? 누구든지 도와줄 수 있나요? deb 파일을 다운로드하고 설치할 수 있도록 문자열로 전체 URL이 필요합니다.

답변1

당신은 이런 일을 할 수 있습니다 (명예이것최신 버전을 얻는 방법에 대한 팁):

base_url="https://github.com/eneshecan/whatsapp-for-linux/releases/download"
version=$(curl --silent https://api.github.com/repos/eneshecan/whatsapp-for-linux/releases | grep -oP '"tag_name":\s*"v\K[^"]+' | sort -h | tail -n1)
wget "$base_url"/v"$version"/whatsapp-for-linux_"${version}"_amd64.deb

답변2

다음 명령을 사용하여 select최신 "Glorious Eggroll" Proton 버전 중 하나 이상을 선택(bash 내장 사용)하여 Steam에 다운로드하고 추출했습니다.

다른 저장소에서 .deb 파일을 다운로드하도록 수정하는 것은 쉬울 것입니다. 기본적으로 @terdon의 답변과 동일한 작업을 수행하지만 약간 더 멋집니다. ( select다운로드한 파일을 다운로드하지 않고 현재 디렉터리와 하위 디렉터리를 확인하는 코드도 포함됩니다 ./archives/. 이전 .tar .gz 파일을 외부로 옮기는 것을 좋아합니다. 혼란을 줄이기 위한 기본 작업 디렉터리 및 다운로드한 콘텐츠가 대상 디렉터리에 아직 추출되지 않은 경우 추출하는 코드입니다.

#!/bin/bash

GE_API_URL='https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases'
GE_json='GE-releases.json'
GE_list='GE-releases.list'
compatdir='/var/games/steam/compatibilitytools.d'
archives='./archives'

mkdir -p "$compatdir"

# Don't download the releases file more than once/day
if [ -e "$GE_json" ] ; then
  GE_date="$(stat --printf "%y" "$GE_json" | cut -d' ' -f 1)"
fi
YMD="$(date +%Y-%m-%d)"

if [ "$GE_date" != "$YMD" ] ; then
  wget "$GE_API_URL" -O "$GE_json"
  jq -r .[].assets[].browser_download_url < "$GE_json" |
    grep '\.tar.gz$' | sort -rV > "$GE_list"
fi

#mapfile -t releases < "$GE_list"         # all
mapfile -t releases < <(head "$GE_list")  # latest 10

echo "Currently installed Proton-GE versions:"
ls "$compatdir" | grep GE | sort -rV
echo

export COLUMNS=80
echo "Select a GE release to download and install or 0 to quit:"
select r in "${releases[@]}"; do
  [ -z "$r" ] && break

  tgz="$(basename "$r")"
  [ -e "$archives/$tgz" ] && tgz="$archives/$tgz"
  if [ ! -e "$tgz" ] ; then
     echo "Downloading $r"
     wget "$r"
  fi

  bn="$(basename "$tgz" ".tar.gz")"
  if [ ! -e "$compatdir/$bn" ] ; then
    echo "Extracting $bn into $compatdir/"
    time tar xfz "$tgz" -C "$compatdir/"
  fi

  echo
  echo -n "Select another version to install or 0 to quit: "
done

관련 정보