md5sums機能を使いたいパッケージビルド新しいものを追跡しないハッシュ値更新するたびにpkgver変数のみを変更すると、私のパッケージの新しいバージョンが構築されます。
md5
許可される公式ウェブサイト私が興味のあるプロジェクトのソースアーカイブのダウンロード範囲class
はmd5sum
私が知る限りハッシュ値常にspan
それ自体がそのうちの2つの後ろにあります。どのように抽出できますか?class
md5sum
span
class
releasedate
a href
tar.xz
ハッシュ値~からウェブサイト通常、コンピュータにプリインストールされているツールを呼び出すことができるシェルスクリプトを使用します。アーキテクチャLinux厳密に含まれる変数にインストールされます。ハッシュ値?
答え1
ページからハッシュを削除する場合は、次の方法が機能します。これはレイアウトが変更されると壊れる可能性があるため、ワンタイム使用のために作成する一種のシングルライナーです。
hashsum=$(curl http://php.net/downloads.php |
grep -A1 -F ">php-${pkgver}.tar.xz<" |
sed 1d |
tr '>' '<' |
cut -d '<' -f3 )
これが非常に柔軟でないアプローチである理由を理解するために、各ステップの結果を調べると便利です。
curl
ページを取得し、標準出力に送信します。 (curl
利用可能な商品がなくてもwget -O -
大丈夫です。)出力には以下が含まれます。
... <ul> <li> <a href="/get/php-7.0.7.tar.bz2/from/a/mirror">php-7.0.7.tar.bz2</a> <a href="/get/php-7.0.7.tar.bz2.asc/from/a/mirror">(sig)</a> [13,776Kb] <span class="releasedate">26 May 2016</span> <span class="md5sum">cc231de15146ca14a69610f695995ab8</span> <span class="sha256">474f2925c4782b94016e3afbb17b14ff9cc6f4fdb6f6e231b36a378bb18a3d1a</span> </li> <li> <a href="/get/php-7.0.7.tar.gz/from/a/mirror">php-7.0.7.tar.gz</a> <a href="/get/php-7.0.7.tar.gz.asc/from/a/mirror">(sig)</a> [17,792Kb] <span class="releasedate">26 May 2016</span> <span class="md5sum">197ec66d134da8968ddd0b89f1cfac2a</span> <span class="sha256">66282ff4a9f88fe9607d9574e15bf335885b964245591a1740adb3f79c514a67</span> </li> <li> <a href="/get/php-7.0.7.tar.xz/from/a/mirror">php-7.0.7.tar.xz</a> <a href="/get/php-7.0.7.tar.xz.asc/from/a/mirror">(sig)</a> [11,219Kb] <span class="releasedate">26 May 2016</span> <span class="md5sum">75f8d1693a470cefe2a50abd283eb291</span> <span class="sha256">9cc64a7459242c79c10e79d74feaf5bae3541f604966ceb600c3d2e8f5fe4794</span> </li> <li> <a href="http://windows.php.net/download#php-7.0"> Windows downloads </a> </li> </ul> ...
grep -A1
パターン(必要なソースファイルの名前)を含む行とそれに続く1行を返します。<a href="/get/php-7.0.7.tar.xz/from/a/mirror">php-7.0.7.tar.xz</a> <a href="/get/php-7.0.7.tar.xz.asc/from/a/mirror">(sig)</a> [11,219Kb] <span class="releasedate">26 May 2016</span> <span class="md5sum">75f8d1693a470cefe2a50abd283eb291</span>
2行目だけに興味があるので、
sed 1d
最初の行を削除します。 (md5sumであることを確認するには、代わりにmd5sumを使用してくださいgrep 'class="md5sum"'
。)<span class="md5sum">75f8d1693a470cefe2a50abd283eb291</span>
この
tr
コマンドはすべてに>
なります。このコマンド自体はあまり役に立ちませんが、次の行を使用できるものに<
置き換えます。cut
<span class="md5sum"<75f8d1693a470cefe2a50abd283eb291</span<
最後に、これらのs(以前のsを含む)を区切り文字として
cut
扱い、3番目の項目を抽出します。ハッシュ時:<
>
75f8d1693a470cefe2a50abd283eb291