如何通过管道命令传递变量?

kyo*_*kyo -1 bash shell

如果我运行此程序,它将起作用。

dig +short myip.opendns.com @resolver1.opendns.com
Run Code Online (Sandbox Code Playgroud)

如果我这样做了,那是行不通的

ip=$(dig +short myip.opendns.com @resolver1.opendns.com) | echo "$ip"
Run Code Online (Sandbox Code Playgroud)

如何通过管道命令传递变量?

Cor*_*ier 6

你不知道

使用

ip=$(dig +short myip.opendns.com @resolver1.opendns.com) && echo "$ip"
Run Code Online (Sandbox Code Playgroud)

(如果第一个命令失败,则不会回显)

要么

ip=$(dig +short myip.opendns.com @resolver1.opendns.com); echo "$ip"
Run Code Online (Sandbox Code Playgroud)

(仍然回显$ ip)