簡體   English   中英

如何在 gitlab 管道中將 PATH 設置為 sh 腳本?

[英]How to setup PATH to sh script in gitlab pipeline?

我有一個 bash 腳本plan.sh在管道執行期間執行多次。

plan:
  before_script:
   - chmod +x ${CI_PROJECT_DIR}/gitlab/deploy/plan/plan.sh     
  script:    
    - cd ${FOLDER1}
    - ${CI_PROJECT_DIR}/gitlab/deploy/plan/plan.sh
    
    - cd ${FOLDER2}    
    - ${CI_PROJECT_DIR}/gitlab/deploy/plan/plan.sh

    - cd ${FOLDER3}
    - ${CI_PROJECT_DIR}/gitlab/deploy/plan/plan.sh

我想只使用文件名而不是完整路徑來執行腳本。 所以我正在設置 PATH 環境變量。

plan:
  before_script:
   - export PATH=${CI_PROJECT_DIR}/gitlab/deploy/plan:$PATH
   - chmod +x plan.sh     
  script:    
    - cd ${FOLDER1}
    - plan.sh
    
    - cd ${FOLDER2}    
    - plan.sh

    - cd ${FOLDER3}
    - plan.sh

但是這會引發錯誤

$ chmod +x 計划.sh
chmod: 無法訪問 'plan.sh': 沒有那個文件或目錄

PATH用於在僅按名稱執行二進制文件時查找二進制文件的位置。

PATH用於解析傳遞給另一個二進制文件的任意文件 arguments。 對於chmod ,這意味着您仍然必須首先提供完整路徑(相對或絕對)或cd到正確的目錄。

這是另一個不起作用/不起作用的示例:

PATH=/bin
cd /

ls bin/ls       # works
ls /bin/ls      # works
bin/ls bin/ls   # works
bin/ls /bin/ls  # works
/bin/ls /bin/ls # works

/bin/ls ls      # error
bin/ls ls       # error
ls ls           # error

暫無
暫無

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

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