如何在命令行上自动粘贴上面的返回值


3

我正在尝试创建一个非常简单的脚本(.command),它将基本上改变我的mac地址..我知道命令:openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'将返回一个随机的十六进制数字,现在我想要它将运行此行sudo ifconfig en0 ether ##的哈希标记将替换它上面返回的随机十六进制数字。

谢谢你,孟德尔

Answers:


1

我确信这不是最优雅的方式,但以下方法可行:

MAC="$( openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//' )" && sudo ifconfig en0 ether $MAC

以上是如何在单个命令中执行此操作。它利用了bash的变量。第一部分将可变量分配给MAC随机化命令的输出,然后第二部分通过引用将此输出插入到您希望的位置$MAC。如果您希望将其集成到bash脚本中,可以稍微修改它,如下所示; 它在多行上完全相同:

#! /bin/bash

MAC="$( openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//' )" 

sudo ifconfig en0 ether $MAC

希望有所帮助!

亲切的问候,汤姆


非常感谢你,我正在考虑一些可变的方法来解决它,但我是一个新的命令行; /
孟德尔

@Mendel不用担心,很高兴我能帮忙!
汤姆
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.