我正在 DD-WRT Web 界面中测试一个随机化路由器 MAC 地址的小脚本。该脚本使用 awk 进行随机化。该脚本在 awk不带shebang (#!/bin/bash) 时有效,反之亦然(不带 awk 但包括 shebang)。但是,当同时使用 shebang和awk时,该脚本不起作用。
作品(使用awk,但没有shebang):
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;
也有效(有shebang,但没有awk):
#!/bin/bash
nvram set mac_clone_enable=1;
nvram set def_hwaddr="02:44:55:66:77:88";
nvram commit;
rc restart;
不起作用(shebang 和 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 作业。可能是什么问题呢?