0
我正在DD-WRT Web界面中测试一个随机化路由器MAC地址的小脚本。该脚本使用awk进行随机化。这个脚本在awk被使用的时候起作用没有 shebang(#!/ bin/bash),反之亦然(没有awk但是包括shebang)。但是,当使用shebang 和 awk时,该脚本不起作用。Bash和Awk奇怪行为(DD-WRT)
作品(使用awk的,但没有家当):
nvram set mac_clone_enable=1;
nvram set def_hwaddr=$(awk 'function m(n){srand(systime()+n);return":"(10+int(rand()*99));}END{print "A4"m(1)m(2)m(3)m(4)m(5);}');
nvram commit;
rc restart;
也可以(有家当,但没有AWK):
#!/bin/bash
nvram set mac_clone_enable=1;
nvram set def_hwaddr="02:44:55:66:77:88";
nvram commit;
rc restart;
不起作用(家当和awk):
#!/bin/bash
nvram set mac_clone_enable=1;
nvram set def_hwaddr=$(awk 'function m(n){srand(systime()+n);return":"(10+int(rand()*99));}END{print "A4"m(1)m(2)m(3)m(4)m(5);}');
nvram commit;
rc restart;
我需要脚本来使用awk并拥有shebang,因此它可以用于cron作业。可能是什么问题呢?
wrt'脚本无法正常工作 - 告诉我们它不工作的方式 - 错误的输出,没有输出,核心转储,错误信息等等......当您要求机械师帮助诊断问题时希望你的车不要只指着你的车,并说“这行不通,可能是什么问题?”。 –
@EdMorton当MAC地址不起作用时,它没有被更改。用户karakfa提供了一个解决方案。 – user3163495
如果这是问题,那么你说的解决方案实际上不可能适用于相同的awk版本。我怀疑真正的问题是,你在每个脚本中调用不同版本的awk,如果你不这样做,那么它会在以后回来咬你;现在就调试它。 –