如何将 awk/grep 输出设置为环境变量?
How to set awk/grep output as enviromental variable?
也许不是最好的命令,但它有效:
ip address show | awk '{print }' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep "10.*"
这会输出以 10.* 开头的 IP 即:
10.71.179.60
我想要的是将此 IP 设置为永久环境变量(我认为它的名称)- $privateip
因此,cronjob 每分钟都会 运行 一个 bash 脚本,其中包含以下内容:
ip address show | awk '{print }' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep "10.*"
发送IP,不时变化,从指令中输入:
export PRIVATEIP=*the output/IP of the above command*
因此,每当我在脚本中 运行 $PRIVATEIP 时,都会获取 IP :)。这需要是永久性的。
有人知道怎么做吗?!
编辑编辑编辑
Timur Shtatland 解决了这个问题:
export PRIVATEIP=`ip address show | awk '{print }' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep "10.*"`
但不是我还有另一个问题:D。当在终端中手动 运行ning 时,这非常有效。但是当我 运行 它作为一个 cronjob 时,比如:
* * * * * export PRIVATEIP=`ip address show | awk '{print }' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep "10.*"`
或
* * * * * bash /path/to/script.sh
其中包含
#!/bin/bash
export PRIVATEIP=`ip address show | awk '{print }' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep "10.*"`
... 它不起作用。有什么想法吗?!
export PRIVATEIP=$( ip address show | awk '{print }' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep "10.*" )
或
export PRIVATEIP=`ip address show | awk '{print }' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep "10.*"`
也许不是最好的命令,但它有效:
ip address show | awk '{print }' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep "10.*"
这会输出以 10.* 开头的 IP 即: 10.71.179.60
我想要的是将此 IP 设置为永久环境变量(我认为它的名称)- $privateip
因此,cronjob 每分钟都会 运行 一个 bash 脚本,其中包含以下内容:
ip address show | awk '{print }' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep "10.*"
发送IP,不时变化,从指令中输入:
export PRIVATEIP=*the output/IP of the above command*
因此,每当我在脚本中 运行 $PRIVATEIP 时,都会获取 IP :)。这需要是永久性的。
有人知道怎么做吗?!
编辑编辑编辑
Timur Shtatland 解决了这个问题:
export PRIVATEIP=`ip address show | awk '{print }' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep "10.*"`
但不是我还有另一个问题:D。当在终端中手动 运行ning 时,这非常有效。但是当我 运行 它作为一个 cronjob 时,比如:
* * * * * export PRIVATEIP=`ip address show | awk '{print }' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep "10.*"`
或
* * * * * bash /path/to/script.sh
其中包含
#!/bin/bash
export PRIVATEIP=`ip address show | awk '{print }' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep "10.*"`
... 它不起作用。有什么想法吗?!
export PRIVATEIP=$( ip address show | awk '{print }' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep "10.*" )
或
export PRIVATEIP=`ip address show | awk '{print }' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep "10.*"`