DD-WRT 웹 인터페이스에서 라우터의 MAC 주소를 무작위로 추출하는 작은 스크립트를 테스트하고 있습니다. 스크립트는 awk를 사용하여 무작위 화를 수행합니다. 이 스크립트는 awk가 shebang (#!/bin/bash)없이 (awk없이 shebang을 포함하여) 사용되었을 때 작동합니다. 그러나,이 스크립트가 과 awk 인 경우 스크립트가 작동하지 않습니다.Bash 및 Awk Strange Behavior (DD-WRT)
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,하지만 오두막을 사용합니다) 및 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의 다른 버전을 호출하고 있으며, 나중에 디버깅 할 때 다시 디버깅 할 수있는 것입니다. –