注意
-这不是重复的!还有其他问题涉及将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命令输出嵌套到内联数组中
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