TL; DR 如何将命令后面的文本分配给bash中的变量?
Ex:/ path / to / script [赋值给变量的值]
我正在编写一个脚本,它基本上以我喜欢的格式过滤来自dig和whois的信息。现在,我已经设置了为我想要查询的域的变量分配用户输入。我正在使用'阅读'。所以它看起来像:
读取-p"域名:"域
这需要运行命令然后放入域,而我想在命令之后放置域,类似于进行正常挖掘或whois时的操作。
如: ./script google.com
我想它不是太复杂,而是将stdin(0)重定向到一个变量。虽然我不知道该怎么做。
答案 0 :(得分:0)
命令行上的参数显示为$ 1,$ 2 ......
答案 1 :(得分:0)
你在bash中读取CLI参数作为有序索引,非常类似于AWK。
因此,如果您的脚本在发出时被调用better-dig.sh
:
$ better-dig.sh google.com
在您的脚本中,您必须在$ 1内捕获参数google.com,在$ 0内捕获脚本名称。
然后:
#!/bin/bash
echo "hi I'm $0 - will call dig with $1"
dig $1 | awk 'the rest of your script'
答案 2 :(得分:0)
命令行参数已经分配给变量1,2,3,4 ...要访问它们,只需使用$ 1,$ 2。例如
echo "argument one is $1"
您可以选择分配给另一个变量
site=$1