저는 코더가 아니며 Linux 배포판의 기본값으로 conky를 사용하려는 사람입니다. 여기서는 자동 네트워크 설정을 얻으려고 합니다.
여기와 다른 곳의 게시물에 이어 다음 줄을 사용하여 활성 네트워크 인터페이스를 인쇄할 수 있습니다.
${color2}활동: ${color3}${execi -300 netup}${color}
"netup"은 /usr/local/bin/에 한 줄만 있는 작은 스크립트를 나타냅니다.
ip addr show | awk '/inet.*brd/{print $NF; exit}'
내 경우에는 화면에 conky 라인이 생성됩니다.활동: 인터페이스 이름(아래 참조). 여태까지는 그런대로 잘됐다.
이제 트래픽이나 기타 네트워크 정보에 대한 인터페이스 특정 명령을 이 스크립트에서 출력된 이름으로 바꾸려고 합니다. 이렇게 하면 나와 사용자의 문제를 줄일 수 있습니다. 나는 이것을 시도했고 wlan0 등을 사용하면 훌륭하게 작동합니다.
아래: ${downspeedf netup}kB/s ${alignr}위: ${upspeedf netup}kB/s ${downspeedgraph netup 30,120 000000 000000} ${alignr}${upspeedgraph netup 30,120 000000 000000}
차트가 표시되지만 내용이 없으므로 이는 분명히 잘못된 것입니다.
두 가지 질문: 1) 이전 줄에 작성된 활성 인터페이스를 읽을 수 있는 방법이 있습니까? 2) 그렇지 않은 경우 netup 스크립트의 출력을 이러한 하향 및 상향 플롯에 어떻게 통합합니까?
도움을 주셔서 감사합니다.
실내 변기
답변1
당신이 할 수 있는 일은 스크립트를 호출하고 인터페이스 이름을 반환할 때까지 eval
호출을 지연하는 것입니다.upspeedf
예를 들어,
${eval $${downspeedgraph ${exec netup} 30,120 000000 000000} }
${alignr}
${eval $${upspeedgraph ${exec netup} 30,120 000000 000000} }
평가를 위해 두 배로 늘리면 $
단일이 됩니다. $
안타깝게도 업데이트 주기마다 스크립트가 호출되므로 스크립트를 최적화해야 할 수도 있습니다. 간격을 사용하면 execi
차이가 없습니다.
완전한 다양성을 얻으려면 많은 것을 배워야 하는 lua 함수를 사용해야 합니다. 인터페이스가 시작 시 한 번만 결정되어야 한다면 작은 시작 스크립트를 작성하여 인터페이스 이름을 찾고 conky를 실행하기 전에 해당 이름으로 .conkyrc 파일을 편집하는 것이 좋습니다.
참고로 ${eval}
이는 버전 1.10 이전에 깨졌습니다.수리하다나는 그것이 1.10.3 또는 .4에서 작동한다고 생각합니다.