![udev 규칙을 사용하여 bash 스크립트를 실행하여 인터페이스 이름을 정의합니다.](https://linux55.com/image/219749/udev%20%EA%B7%9C%EC%B9%99%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%98%EC%97%AC%20%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EC%A0%95%EC%9D%98%ED%95%A9%EB%8B%88%EB%8B%A4..png)
USB-LTE-동글을 연결할 때 임의의 인터페이스 이름을 제거하고 인터페이스 이름을 프로그래밍 방식으로 결정하고 싶습니다.
외부 bash 스크립트의 도움으로 잠재적인 이름을 얻는 것이 가장 쉽다고 생각합니다. 스크립트 결과를 "%c"에 할당하여 ENV{MY_VAR}에 저장할 수 있다는 내용을 읽었지만 실제로는 작동하지 않습니다.
udevadm -e로 모니터링하는데 MY_VAR이 비어 있습니다.
SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="12d1", IMPORT{program}="/some/determined_name.sh", ENV{MY_VAR}="%c"
다른 줄에서는 MY_VAR을 읽고 이를 인터페이스 이름에 할당하고 싶습니다. 이것도 작동하지 않습니다.
SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="12d1", NAME=ENV{MY_VAR}
어떤 팁이 있나요?
답변1
해결책을 찾았습니다.
SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="12d1", Program="/some/determined_name.sh", NAME="%c"
처음에는 그래야 한다고 생각했어요
IMPORT{program}
하지만 이는 다소 오해의 소지가 있다