후속 라인에서 conky의 execi 출력을 사용하는 방법

후속 라인에서 conky의 execi 출력을 사용하는 방법

저는 코더가 아니며 Linux 배포판의 기본값으로 conky를 사용하려는 사람입니다. 여기서는 자동 네트워크 설정을 얻으려고 합니다.

  1. 여기와 다른 곳의 게시물에 이어 다음 줄을 사용하여 활성 네트워크 인터페이스를 인쇄할 수 있습니다.

    ${color2}활동: ${color3}${execi -300 netup}${color}

"netup"은 /usr/local/bin/에 한 줄만 있는 작은 스크립트를 나타냅니다.

ip addr show | awk '/inet.*brd/{print $NF; exit}'

내 경우에는 화면에 conky 라인이 생성됩니다.활동: 인터페이스 이름(아래 참조). 여태까지는 그런대로 잘됐다.

  1. 이제 트래픽이나 기타 네트워크 정보에 대한 인터페이스 특정 명령을 이 스크립트에서 출력된 이름으로 바꾸려고 합니다. 이렇게 하면 나와 사용자의 문제를 줄일 수 있습니다. 나는 이것을 시도했고 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에서 작동한다고 생각합니다.

관련 정보