如何将以下命令的文本分配给bash中的变量

时间:2014-06-03 18:29:48

标签: linux bash

TL; DR 如何将命令后面的文本分配给bash中的变量?

Ex:/ path / to / script [赋值给变量的值]

我正在编写一个脚本,它基本上以我喜欢的格式过滤来自dig和whois的信息。现在,我已经设置了为我想要查询的域的变量分配用户输入。我正在使用'阅读'。所以它看起来像:

读取-p"域名:"域

这需要运行命令然后放入域,而我想在命令之后放置域,类似于进行正常挖掘或whois时的操作。

如: ./script google.com

我想它不是太复杂,而是将stdin(0)重定向到一个变量。虽然我不知道该怎么做。

3 个答案:

答案 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