gpt4 book ai didi

linux - ASN 查找别名不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 10:39:45 26 4
gpt4 key购买 nike

我正在尝试在我的 .bashrc 配置文件中使用以下别名:

alias ip2asn="IP=$(dig $1 a +short);whois -h v4.whois.cymru.com " -v $IP""

命令本身没有问题,但是当我在 .bashrc 中创建别名并尝试获取 ~./bashrc 时,我得到以下输出:

$ source .bashrc
bash: alias: -v: not found
bash: alias: k.root-servers.net.: not found
bash: alias: d.root-servers.net.: not found
bash: alias: c.root-servers.net.: not found
bash: alias: e.root-servers.net.: not found
bash: alias: f.root-servers.net.: not found
bash: alias: m.root-servers.net.: not found
bash: alias: g.root-servers.net.: not found
bash: alias: b.root-servers.net.: not found
bash: alias: j.root-servers.net.: not found
bash: alias: i.root-servers.net.: not found
bash: alias: h.root-servers.net.: not found
bash: alias: a.root-servers.net.: not found
bash: alias: l.root-servers.net.: not found

我注意到 bash shell 似乎在执行别名后仍保留 $IP 变量。我不确定如何回应这个问题。

有什么建议吗?谢谢,--技术萨满

最佳答案

您的声明中存在一些问题。首先是您需要转义内部双引号 ",否则您将关闭并重新打开它们。第二个问题是您的 $IP 正在扩展别名声明,而不是在您使用它时。

关于 $IP 在执行别名时幸存下来:别名只不过是为您键入的命令。您根本不应该使用变量或创建子 shell - 用 () 包含所有内容。

alias ip2asn='(IP=$(dig $1 a +short);whois -h v4.whois.cymru.com -v "$IP")'

无论如何我认为这不会像您预期的那样工作,别名不会接收那样的参数,这个 $1 不会工作。听起来你需要一个功能:

ip2asn() {
whois -h v4.whois.cymru.com -v "$(dig "$1" a +short)"
}

关于linux - ASN 查找别名不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35649119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com