View previous topic :: View next topic |
Author |
Message |
Anard Apprentice
Joined: 01 Oct 2020 Posts: 236
|
Posted: Mon Mar 27, 2023 7:25 pm Post subject: [SCRIPT] Syntaxe des scripts |
|
|
Bonsoir,
J'ai une petite question idiote.
J'ai remarqué qu'il est souvent conseillé dans les scripts système (cron, /etc/local.d, /etc/udev/rules.d), d'utiliser les chemins exacts des fonctions plutôt que le nom de la fonction (p/ ex /usr/sbin/ethtool plutôt que ethtool).
Pourriez-vous me donner une bonne raison à cela ?
Je demande ça car j'ai réutilisé récemment un script déniché dans les wikis d'ArchLinux utilisant une règle udev sur ethtool et mentionnant "/usr/bin/ethtool".
La règle ne fonctionnait pas chez moi puisque ethtool est placé dans /usr/sbin
Pourquoi ne pas utiliser en priorité le nom de la fonction plutôt que son chemin, qui lui varie d'un système à l'autre ?
Merci pour vos éclaircissudes. _________________ "iMack" : GA-H97M-D3H, Intel i7 4790, 16Go DDR3, Intel HD4600, 2x SSD 256Go, HDD 500Go+2To / Clover - macOS Mojave / Gentoo-Xfce
"Portable" : HP 350G3, HDD 500Go / rEFInd - Xubuntu 20.04 / Windows 10
Last edited by Anard on Wed Apr 05, 2023 6:57 pm; edited 1 time in total |
|
Back to top |
|
|
ghoti Advocate
Joined: 30 Dec 2002 Posts: 3634 Location: Belgium
|
Posted: Mon Mar 27, 2023 10:13 pm Post subject: Re: Syntaxe des scripts |
|
|
Bonsoir,
Anard wrote: | Pourquoi ne pas utiliser en priorité le nom de la fonction plutôt que son chemin, qui lui varie d'un système à l'autre ? |
Sur ton système, il pourrait éventuellement exister des programmes portant le même nom mais avec une version différente ou effectuant des actions inattendues.
Si tu n'indiques pas le chemin explicite, le programme sera recherché dans les chemins renseignés dans ta variable $PATH et c'est le premier exemplaire trouvé qui sera exécuté. La roulette russe, quoi !
La seule manière d'être certain d'exécuter le bon programme est d'indiquer explicitement son chemin complet. |
|
Back to top |
|
|
El_Goretto Moderator
Joined: 29 May 2004 Posts: 3174 Location: Paris
|
Posted: Wed Apr 05, 2023 8:38 am Post subject: |
|
|
Salut Anard,
Peux-tu STP mettre ton titre en conformité avec les règles en usage sur notre forum (Le format choisi est : [THEME] description (état))? _________________ -TrueNAS & jails: µ-serv Gen8 E3-1260L, 16Go ECC + µ-serv N40L, 10Go ECC
-Réseau: APU2C4 (OpenWRT) + GS726Tv3 + 2x GS108Tv2 + Archer C5v1 (OpenWRT) |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2311 Location: Bretagne
|
Posted: Thu Apr 06, 2023 3:00 pm Post subject: Re: [SCRIPT] Syntaxe des scripts |
|
|
Anard wrote: |
J'ai une petite question idiote.
|
Une question qui m'a été très utile ainsi que sa réponse.
Merci |
|
Back to top |
|
|
admnd n00b
Joined: 07 Apr 2021 Posts: 11
|
Posted: Tue Apr 18, 2023 3:13 pm Post subject: Re: [SCRIPT] Syntaxe des scripts |
|
|
Adrien wrote: | Anard wrote: |
J'ai une petite question idiote.
|
Une question qui m'a été très utile ainsi que sa réponse.
Merci |
Pour complémenter la réponse qui a été donnée ci-avant: c'est aussi un gage de sécurité.Il est ainsi certain que ce soit le "vrai" programme qui est exécuté et pas quelque chose de bizarre (sous réserve que vos permissions d'accès ne soient pas un gruyère).
Commentaire d'ordre général: Il n'y a pas de question technique stupide (même les meilleurs ont commencé de rien) par contre il y a souvent beaucoup de paresse... Il est plus simple et plus "rapide" de poser une question dans un forum ou une liste de discussion que de prendre du temps pour chercher une réponse (souvent maintes et maintes fois formulée) ou de passer un peu de temps à essayer soi-même quelques trucs. problème en faisant cela c'est que ceux qui ont expertise plus poussée finissent par se lasser et cessent d'alimenter les discussions pour consacrer leur peu de temps libre à des activités plus intéressantes que de s'épuiser à remplir le tonneau des Danaïdes. |
|
Back to top |
|
|
Skwal Apprentice
Joined: 07 Jun 2019 Posts: 154
|
Posted: Sat Apr 22, 2023 8:49 pm Post subject: |
|
|
Bonsoir;
Question simple et très intéressant, ça peut expliquer d'éventuels "bugs" du coup.
Quote: | Commentaire d'ordre général: Il n'y a pas de question technique stupide (même les meilleurs ont commencé de rien) par contre il y a souvent beaucoup de paresse... Il est plus simple et plus "rapide" de poser une question dans un forum ou une liste de discussion que de prendre du temps pour chercher une réponse (souvent maintes et maintes fois formulée) ou de passer un peu de temps à essayer soi-même quelques trucs. problème en faisant cela c'est que ceux qui ont expertise plus poussée finissent par se lasser et cessent d'alimenter les discussions pour consacrer leur peu de temps libre à des activités plus intéressantes que de s'épuiser à remplir le tonneau des Danaïdes.
|
J'ai eu mal au crâne... un samedi soir du coup, mais je suis obligé d'interagir:
Il y a effectivement beaucoup de paresse, ça n'a pas que des mauvais côté, par exemple je ne me suis jamais posé cette question et je tombe sur ce sujet, c'est intéressant.
De plus je mange d'énormes quantités d'informations chaque jours mais n'ai pas forcément l'esprit ou l'intelligence pour comprendre les "fiches techniques" alors que dans une telle discussion j'y arrive bien plus facilement, gros gain de temps au final !
Quote: | remplir le tonneau des Danaïdes |
Du coup j'ai été chercher l'info, comme quoi ce genre de sujet est très pédagogique, mais un samedi soir... j'ai fermé la page pour éviter une prise de tête mais ça à l'air franchement intérerssant.
admnd, nous n'avons pas forcément vos connaissances ou/et vos compétences, moi perso je galère car je suis pas doué en informatique (mais passionné), c'est à ça que servent les forums, échanger.
Cordialement, Skwal. |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2311 Location: Bretagne
|
Posted: Tue Apr 25, 2023 11:07 am Post subject: |
|
|
Skwal wrote: |
admnd, nous n'avons pas forcément vos connaissances ou/et vos compétences, moi perso je galère car je suis pas doué en informatique (mais passionné), c'est à ça que servent les forums, échanger.
Cordialement, Skwal. |
+1
C'est mon cas également et cela ne m'empêche pas de chercher des solutions et faire des essais pendant parfois longtemps avant de poster.
Il est bon que des non-initiés s'instruisent, se confrontent au fonctionnement de Linux et viennent chercher (et trouver) de l'aide ici. |
|
Back to top |
|
|
Dominique_71 Veteran
Joined: 17 Aug 2005 Posts: 1895 Location: Switzerland (Romandie)
|
Posted: Thu Oct 12, 2023 11:59 am Post subject: |
|
|
Comme déjà relevé, l'élément sécurité est important.
Il y a aussi que certaines commandes internes de bash et consorts (voir 'man builtin') sont aussi présentent dans /bin, par exemple echo (voir man echo), et qu'elles n'ont pas forcément la même syntaxe. Donc 'echo $xyz' va appeler la commande interne, tandis que '/bin/echo $xyz' va appeler la commande externe. |
|
Back to top |
|
|
Dominique_71 Veteran
Joined: 17 Aug 2005 Posts: 1895 Location: Switzerland (Romandie)
|
Posted: Thu Oct 12, 2023 12:09 pm Post subject: |
|
|
Tu ne dis pas si tes scripts sont pour bash ou pour sh. Avec bash, aucun problème on est toujours dans bash.
Par contre avec sh, sous gentoo on est dans bash, sous debian et les distros basées sur debian on est dans dash, une version POSIX de sh développée par debian et qui a une syntaxe beaucoup plus restrictive que celle de bash en mode sh. Donc si tes scripts sont pour sh et que tu veux qu'ils soient portables, au moins sur n'importe qu'elle distribution linux, il faut installer dash et les tester et mettre au point avec celui-ci. Ils tourneront alors sans problème aussi bien avec sh, qu'avec dash et bash en mode sh. |
|
Back to top |
|
|
|