Pourquoi tu veux éviter les if?
Sinon tu peux, au lieu d'utiliser le module de conky, appeler un script avec execi.
${execi 3600 wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1}
J'ai mis le rafraîchissement à 3600 (une heure) parce que execi est très très gourmand dans conky pour des scripts composés d'un peu plus qu'une commande simple.
Ça peut te faire laguer le conky lors d'une actualisation ou d'un changement si tu utilise un raccourci conky-switcher par exemple (c'est-à-dire que lors du changement vers un autre conky sans execi, ça se fait instantanément, mais lors du retour vers un conky avec execi, ça risque de faire "charger" 1 ou 2 secondes). Si ça consomme trop de CPU ou si t'es titillé par le problème de latence lors de l'actualisation/changement de conky, tu peux aussi mettre le script en exécution automatique toutes les X minutes (ou via un événement ou même un raccourci que tu active toi-même quand tu change de réseau), en dehors du conky, inscrire la sortie dans un fichier texte et avec cat ou head dans conky, afficher cette sortie.