我想将命令的输出作为位置参数传递给脚本文件.请看下面的命令.
whois -h 192.168.0.13 google.com | grep -e Domain\ Name
那个命令会给我一个“名字”.我想要做的是将该输出再次作为位置参数传递给shell脚本文件.
my-file.sh:
#!/bin/bash #My First Script if [ $1 == "my-domain-name" ]; then echo "It is ok" exit 1 fi
所以,基本上我想要做的就是这样.
whois -h 192.168.0.13 google.com | grep -e Domain\ Name | -here pass the Name to my-file.sh and run that file
解决方法
只需定义一个新函数来检查whois输出并在if条件中使用返回字符串,如下所示.这样,您可以在执行脚本时避免使用多级管道,而只需通过一个简单的函数来控制它.
get_whois_domainName() { whois -h 192.168.0.13 google.com | grep -e Domain\ Name } if [ "$(get_whois_domainName)" = "my-domain-name" ]; then echo "It is ok" exit 0 fi
但是,如果您仍想通过命令行传递,请执行此操作
my-file.sh "$(whois -h 192.168.0.13 google.com | grep -e Domain\ Name)"