簡體   English   中英

bash腳本編寫-如何使用被稱為變量的函數的結果

[英]bash scripting - how to use results from a function that is called as a variable

試圖弄清楚如何將一個函數的結果傳遞給另一個(作為變量)。 以下是我正在處理的腳本:

#!/usr/local/bin/bash

set -x
_creds=/path/access
_pgpw=$(getPW)

getPW(){ 
  masterpw=$(grep -E 'url.*myfooapp.com' -A4 ${_creds}/access.json \
  | grep "pwd" \
  | awk '{split($0,a,":"); print a[2]}' \
  | grep -o '".*"' \
  | tr -d '"')
}

runQuery(){
  PGPASSWORD="${_pgpw}" \
  psql -h myfooapp.com -U masteruser -d dev -p 5439 
  echo "CLUSTER: ${_cluster}"
}

runQuery
set -x

我需要的是PGPASSWORD以從函數getPW獲取結果,並且返回空值。 我不確定是否在嘗試調用函數時使用變量_pgpw=$(getPW)正確執行了此操作。 請提供最佳方法建議。 謝謝

函數可以帶參數; 通過位置參數$1$2等在函數內部訪問它們。

runQuery () {
    PGPASSWORD=$1
    psql ...
}

runQuery "$(getPW)"

Bash在讀取腳本時逐行執行腳本。 您需要先定義函數,然后再調用它。 在編寫腳本時, getPW在定義之前就被調用,因此不會產生任何輸出。 只需將_pgpw=$(getPW)getPW()定義下方getPW()

暫無
暫無

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

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