注意 - 这不重复!还有其他一些问题涉及将bash输出转换为bash数组 - ,但它们都没有内联 。您需要内联的原因是until
。
我正在尝试编写一个until
命令,用于从dig命令解析端口。
以下是单独行上的工作命令。
SERVER_DIG_RESULT=$(dig +noall +answer $SERVER_DNS_NAME SRV )
SERVER_STRING_ARRAY=($SERVER_DIG_RESULT)
SERVER_PORT=${SERVER_STRING_ARRAY[6]}
until nc -z $SERVER_DNS_NAME $SERVER_PORT
这个问题是在运行第一个dig
命令之后,dns可能无法联机,因此您希望until
命令一遍又一遍地运行dig
。
这是我的破坏直到命令(我尝试把它放在一行)。
until nc -z $SERVER_DNS_NAME ${$(dig +noall +answer $SERVER_DNS_NAME SRV)[6]}
我似乎遇到了变量替换的问题。 我的问题是:如何将bash命令输出嵌套到内联数组中?
答案 0 :(得分:1)
until
语句的条件不限于单个命令。
until SERVER_STRING_ARRAY=( $(dig +noall +answer "$SERVER_DNS_NAME" SRV)
SERVER_PORT=${SERVER_STRING_ARRAY[6]}
nc -z "$SERVER_DNS_NAME" "$SERVER_PORT"; do
...
done