我想将以下dig
命令输出的第一行设置为变量:
root@kali:~# dig +short stackoverflow.com
151.101.129.69
151.101.65.69
151.101.1.69
151.101.193.69
因此它输出了很多IP地址,但是我只希望第一个可以通过sed
或head
完成,如下所示:
root@kali:~# dig +short stackoverflow.com | sed -n 1p
151.101.193.69
问题:
当我将其设置为变量时,它将为我提供所有IP地址:
root@kali:~# cmd='dig +short stackoverflow.com | sed -n 1p'
root@kali:~# $cmd
151.101.129.69
151.101.65.69
151.101.1.69
151.101.193.69
答案 0 :(得分:1)
如果要将输出保存到变量中,请使用$(...)
:
$ ip=$(dig +short stackoverflow.com | sed -n 1p)
$ echo "$ip"
151.101.129.69
如果要创建可以多次运行的快捷方式,请使用以下功能:
$ cmd() { dig +short stackoverflow.com | sed -n 1p; }
$ cmd
151.101.129.69
答案 1 :(得分:0)
要分配值,您需要像这样定义它:
cmd=$(dig +short stackoverflow.com | sed -n 1p)
执行:
ivo@spain-nuc-03:~/Downloads/TestStackoverflow$ echo "${cmd}"
151.101.193.69