Lancer éditeur de texte depuis un script sh

Bonjour à tous,

Lors de l’exécution d’un script sh (pas bash !), je souhaite appeler un éditeur de texte pour permettre à l’utilisateur de modifier directement un fichier. Le problème étant de garder ce script le plus portable possible. J’ai regardé du côté de la variable d’environnement $editor ou $EDITOR, mais ne serait-ce que sur mon PC, cette variable est absente. Pas très portable. J’ai pensé à imposer un éditeur, mais lequel ? nano est installé de base par Debian, mais je l’ai personnellement viré parce-qu’il m’agace avec ces raccourcis bizarres. Sans compter que je ne suis pas sûr que toutes les distributions installent nano de base. Bref, y’a-t-il une norme pour désigner un éditeur et le lancer, même si ce n’est pas le même sur chaque OS ?

Merci pour votre aide.
Duna

Nano n’est pas partout, vi est un peu plus il me semble.

Je penses pas qu’il y ai une norme, mais xdg je crois te permet, faut voir si le systeme a xdg d’installer.

Sinon, tu peux faire une verification du systeme et en fonction tu propose ce que le systeme t’offre par defaut. Tu supportera une bonne liste de systeme bsd, linux, windows, etc.

Par défaut une session terminal n’a pas d’association de MIME avec une application (sauf si la variable $EDITOR est positionnée, mais tu ne peux pas prendre pour acquis qu’elle le soit).
Si le script est lancé depuis un environnement graphique, répondant aux normes freedesktop tu peux jouer avec ça : standards.freedesktop.org/mime-a … 1.0.1.html
Si je devais faire ce genre de script, en premier je testerai $EDITOR et si la valeur est nulle alors tester dans l’ordre vi (avec which vi, si le résultat est <> 0 alors il n’existe pas) nano, emacs

Bonjour
et le système des alternatives Debian ?
(update-alternatives)

Sur un système Debian, on peut tester /etc/alternatives/editor, par exemple ou avec la commande:

portable… seulement sur Debian et dérivés (?)

Plus simplement que tester la valeur de ‘editor’ via update-alternatives, on peut l’appeler directement :

Cette méthode fonctionne indépendamment de la valeur de $EDITOR, y compris si cette variable est vide.

Le script sera certainement lancé sur des environnement non graphiques, mais sur des distributions Linux et BSD variées. J’adopte donc la technique du test successif des différents éditeurs (en commençant par editor).

Merci pour vos conseils :slightly_smiling: