1.6*_*803 10 freebsd bash alias profile command-substitution
我想为随机更改我的mac地址创建一个别名
alias chrandmac="sudo ifconfig en0 ether $(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//')"
Run Code Online (Sandbox Code Playgroud)
但是命令替换部分在执行配置文件时已经解决了。
alias chrandmac='sudo ifconfig en0 ether 83:3a:bf:fc:4e:29'
Run Code Online (Sandbox Code Playgroud)
关于为什么会发生这种情况的任何想法?
jor*_*anm 19
您想使用函数而不是别名。它可以像别名一样放在您的启动文件中:
chrandmac() {
sudo ifconfig en0 ether $(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//')
}
Run Code Online (Sandbox Code Playgroud)
为了让它与别名一起工作,您需要使用单引号来防止命令替换的扩展。
alias chrandmac='sudo ifconfig en0 ether $(openssl rand -hex 6 | sed '\''s/\(..\)/\1:/g; s/.$//'\'')'
Run Code Online (Sandbox Code Playgroud)