所以我正在尝试制作一个bash文件,每10分钟旋转一次MAC地址,每次都会分配一个随机的十六进制数字。我想将一个名为random_hexa
的变量分配给此命令的结果:openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
。然后我会接受变量并稍后在脚本中使用它。
任何想法如何获取openssl
命令的结果并将其分配给变量供以后使用?
谢谢!
答案 0 :(得分:2)
如下所示存储变量:
myVar=$(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//')
现在$myVar
可用于指代您的号码:
echo $myVar
$()
在subshell中的括号内运行命令,然后将其存储在变量myVar
中。这称为 command substitution 。
答案 1 :(得分:1)
你想要"命令替换"。传统的语法是
my_new_mac=`openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'`
Bash也支持这种语法:
my_new_mac=$(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//')
答案 2 :(得分:0)
您可以使用$()
语法存储任何命令的结果,例如
random_hexa=$(openssl...)