1

我已经测试过这个命令

$ nmap -sP 192.168.1.* | grep 192  | awk '{print $5}'

产生这个输出

192.168.1.1
192.168.1.33
192.168.1.34
192.168.1.36
192.168.1.41

然后将其添加到我的 .bash_alias 文件中,然后获取它。

# This alias shows IPs on the local network
alias list-ip="nmap -sP 192.168.1.* | grep 192  | awk '{print $5}'"

但是它会产生这个输出

Nmap scan report for 192.168.1.1
Nmap scan report for 192.168.1.33
Nmap scan report for 192.168.1.34
Nmap scan report for 192.168.1.36
Nmap scan report for 192.168.1.41

我不知道我做错了什么。我只希望输出与我在命令行上运行时的输出相同,而且应该如此。

4

1 回答 1

7

您使用双引号,因此$5在您设置别名时会被扩展。尝试

 alias list-ip="nmap -sP 192.168.1.* | grep 192  | awk '{print \$5}'"

注意

 alias list-ip='nmap -sP 192.168.1.* | grep 192  | awk "{print $5}"'

不起作用,因为扩展仍然发生,这一次当您运行别名时。

您还可以摆脱awk,例如:

 alias list-ip='nmap -sP 192.168.1.* | grep -o "192[0-9.]*"'
于 2013-05-04T17:53:55.683 回答