如何正确创建别名

时间:2013-05-04 17:32:16

标签: awk alias bash

我已经测试了这个命令

$ 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

我对我做错的事情一无所知。我只想让输出像在命令行上运行一样,它应该是。

1 个答案:

答案 0 :(得分:6)

您使用双引号,因此在设置别名时会扩展$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.]*"'