我可以壓縮一堆檔案 zip
$ zip build.zip src/*.js src/assets/icons/*.png *.json
updating: src/addReactionsNav.js (deflated 65%)
updating: manifest.json (deflated 55%)
updating: src/assets/icons/icon_128.png (stored 0%)
updating: src/assets/icons/icon_16.png (stored 0%)
updating: src/assets/icons/icon_256.png (deflated 0%)
updating: src/assets/icons/icon_48.png (stored 0%)
但我想自動化它,所以 zip 的名稱包括版本。想辦法做到這一點:
$ echo "build_$(cat manifest.json | jq .version).zip" | sed s/\"//g
build_1.1.0.zip
但無法弄清楚如何將兩者“管道”在一起。
解決方案
謝謝@cyrus
zip "build_$(jq -r .version manifest.json).zip" src/*.js src/assets/icons/*.png *.json
uj5u.com熱心網友回復:
替換build.zip為"build_$(cat manifest.json | jq -r .version).zip"。
更新:
替換build.zip為"build_$(jq -r .version manifest.json).zip"。
uj5u.com熱心網友回復:
zip "build_$( jq -r .version manifest.json ).zip" ...
要將一個程式的輸出包含在另一個程式的命令列中,可以使用$(...).
zip "$( echo "build_$( cat manifest.json | jq .version ).zip" | sed s/\"//g )" ...
這是您問題的答案,但是您可以極大地清理它。
首先,我們可以將 dequoting 移到 inner 中$()。
zip "$( echo "build_$( cat manifest.json | jq .version | sed s/\"//g ).zip" )" ...
echo "$( ... )"實際上只是...。
zip "build_$( cat manifest.json | jq .version | sed s/\"//g ).zip" ...
讓我們擺脫無用的cat.
zip "build_$( jq .version manifest.json | sed s/\"//g ).zip" ...
最后,sed我們可以使用--raw-outputaka ,而不是嘗試將 JSON 文字轉換為它生成的字串-r。
zip "build_$( jq -r .version manifest.json ).zip" ...
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/407345.html
標籤:
上一篇:使用時如何使回聲僅“回聲”一次
