【发布时间】:2020-06-25 21:44:55
【问题描述】:
这是我的脚本:
#!/bin/bash
opid=$(./komodo-cli -ac_name=EXAMPLECOIN z_sendmany $fromAddress '[{"address":"'''$toAddress'''","amount":'''$sendAmount'''}]' 1 0)
echo $opid
txid=$(./komodo-cli -ac_name=EXAMPLECOIN z_getoperationstatus '["'$opid'"]' | jq -r '.[]' | jq -r '.result' | jq -r '.txid')
echo $txid
bash 脚本的预期目标是运行命令以发送交易,获取交易的操作 ID 并在命令中使用它来获取交易 ID。
就像现在一样,z_operationstatus 命令无法使用 opid 变量并返回空结果。
opid 将成功发送交易。
echo $opid 正确输出 opid。例如:opid-7a08d8e0-63ed-44b4-9c8a-79c90b8c460c
如果我自己运行txid并将z_getoperationstatus '["'$opid'"]'替换为z_getoperationstatus '["'$1'"]'并在运行时提供一个opid,它将成功打印正确的txid。
z_getoperationstatus 的正确语法是 z_getoperationstatus '["opid..."]' but I added single quotes around$opid`,因此变量在已经存在的单引号内被识别。 (不确定这是否正确或说明问题)
任何帮助将不胜感激,谢谢。
【问题讨论】:
-
第一个字符
#后面缺少一个感叹号。只是说。 -
如果你有
jq,你为什么要通过连接变量来创建JSON? -
@Roadowl 谢谢,但不是脚本中的问题。把它放在这里了。
-
@Barmar 我只是在使用 jq,我知道如何仅获得命令输出的所需结果。 z_operationstatus 返回大量数据,但我只需要 txid 作为输出和其他命令。我意识到这可能不合适
标签: bash variables transactions null