[英]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.