我怎样才能使curl输出到$LOG
该json_extract
函数并作为该函数的第二个参数。
json_extract
是一个需要两个参数的函数。'key'和一个json字符串(CURL的输出)
param=$(json_extract $jsonkey "$(curl -H "Accept: application/json" \
-H "Content-Type:application/json" \
-X POST --data "$data" $url >> $LOG )")
当我删除重定向到$LOG
CURL时,输出将作为的参数传递json_extract
。
听起来您想多次使用单个命令的输出。在这种情况下,您需要将其存储在变量中,然后在需要时使用该变量。例如尝试这样的事情:
response="$(curl -H "Accept: application/json" -H "Content-Type:application/json" \
-X POST --data "$data" "$url")"
echo "$response" >> "$LOG"
param=$(json_extract "$jsonkey" "$response")
另一种选择是使用tee
,它将命令的输出发送到文件以及标准输出。例如:
param=$(json_extract "$jsonkey" "$(curl -H "Accept: application/json" \
-H "Content-Type:application/json" \
-X POST --data "$data" "$url" | tee -a "$LOG" )")
就个人而言,我发现使用“ $ response”之类的变量会导致代码更具可读性和可理解性。尤其是当它使您可以将很长且复杂的单线分割成多条较短的,易于理解的行时。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句