簡體   English   中英

bash將git命令結果添加到局部變量

[英]bash add git command result to local variable

我試圖更改文件名,在將文件發送到存儲庫之前,在文件上添加提交次數和當前分支名稱。

但是我收到以下錯誤:

./publish_to_artifactory.sh:第4行:本地:`rev-parse':不是有效的標識符'`

upload() {
  local currentBranch=git rev-parse --abbrev-ref HEAD;
  local gitNumberOfCommits=git rev-list --count HEAD;

  for file in ./../*.ipa; do
    mv $file mobile-${currentBranch}-${gitNumberOfCommits};
    echo "uploading zeos-mobile-$currentBranch-$gitNumberOfCommits";
    curl -X PUT -u $PUBLISH_USER:$PUBLISH_PASS -T mobile-$currentBranch-$gitNumberOfCommits; http://example.com/artifactory/ios-dev-local/ --fail
  done
}

upload;

我究竟做錯了什么?

要將命令的輸出分配給變量,需要在bash使用命令替換語法。

local currentBranch="$(git rev-parse --abbrev-ref HEAD)"
local gitNumberOfCommits="$(git rev-list --count HEAD)"

您所做的是將文字字符串存儲在定義的那些局部變量中。 當shell用令牌標記他們進行評估時,它已經將其理解為一個變量分配,這是完全錯誤的! 它理解的是在currentBranch名稱中設置為值gitlocal變量,並嘗試將rev-list作為命令運行,但顯然無法在其標准路徑列表中(在$PATH )找到該命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM