CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

sh compliant

iscario
iscario
Niveau 7
16 mars 2011 à 19:46:14

Bonjour,

J'ai une petite question de shell.
J'ai récupéré des scripts ksh (apparemment), que j'essaie d'adapter en sh.
Et je m'interrogeais sur la syntaxe suivante :
http://pastebin.com/6a2zX4MY

Les regex ne semblent pas compatibles avec shell si je suis le man (à moins que j'ai zappé un truc :question: ), pourtant cela semble fonctionner avec shell sh. Quand j'exécute mon script en sh, il arrive à bien interpréter les programmes et en particulier les 2 parties que je vous ai données en exemple.
Donc : est-ce que c'est normal que ca fonctionne en shell sh ?
Si non:
- pourquoi est-ce que cela marche chez moi (ie ou est-ce que c'est marqué dans le man :question: ) ? (le sh varie-t-il d'un OS à un autre ? ) (j'ai fait mes tests sur un BSD)
- par quoi je peux remplacer les patterns pour obtenir une compatibilité sh ?

Merci!

chris_27
chris_27
Niveau 10
16 mars 2011 à 20:33:23

Là je botte en touche direct. Les regex en shell, c'est trop la merde. Utilise perl.

Par ailleurs, attention : ton man ne te parlerait JAMAIS de sh. Il va te parler de bash, de zsh, de ksh, de csh ou que sais-je encore, mais pas de "sh" en lui même.

« avec shell sh » :d) /bin/sh ne serait pas un lien symbolique vers bash/dash (linux) ou csh/ksh (BSD), par hasard ? :doute:

iscario
iscario
Niveau 7
16 mars 2011 à 20:41:51

Arf perl ca m'oblige a installer un truc supplémentaire (que je ne connais pas en plus^^)

Pour le Man j'ai fais Man Sh qui me renvoie vers renvoit vers man 7 re_format

Et sh pointe bien vers /bin/sh.

Effectivement ca a l'air pas simple les regex sous UNIX :(

aodren
aodren
Niveau 10
16 mars 2011 à 21:10:28

sh est la commande en elle même pointé sur /bin/sh qui est son emplacement

maintenant quand tu regarde mieux, par exemple, chez moi /bin/sh renvoi vers bash

[aodren@Syrtis ~]$ ll /bin/sh
lrwxrwxrwx 1 root root 4 2010-08-25 23:12 /bin/sh -> bash

chris_27
chris_27
Niveau 10
17 mars 2011 à 00:14:39

« Arf perl ca m'oblige a installer un truc supplémentaire » :d) je ne pense pas, non. La plupart des distro (si ce n'est toutes) l'inclut de base tellement ça sert dans les bas fonds du système.

« Effectivement ca a l'air pas simple les regex sous UNIX :( » :d) la phrase n'a pas de sens : il y a les regex à la flex, les regex à la bash, les regex à la perl, les regex à la sed, etc. Le vrai problème, c'est que les gens n'utilisent pas du tout les mêmes conventions.

Dargor
Dargor
Niveau 10
17 mars 2011 à 09:28:28

Si tu veux faire du vrai sh, voici à quoi tu auras droit : http://dargor.servebeer.com/~dargor/shell.html

Faudrait que je trouve la même référence pour awk et sed, tiens.

chris_27
chris_27
Niveau 10
17 mars 2011 à 10:54:41

Il y a des différences dans sed aussi ? :ouch:

Dargor
Dargor
Niveau 10
17 mars 2011 à 11:37:35

À partir du moment où il y a du GNU... ha zut, c'est demain vendredi.

godrik
godrik
Niveau 30
17 mars 2011 à 13:13:21

dargor mon hero!

En parlant de shell posix, ca peut etre interessant de lire ca:

http://apenwarr.ca/log/?m=201102#28

Dargor
Dargor
Niveau 10
17 mars 2011 à 13:58:49

Très intéressant en effet, merci :)

iscario
iscario
Niveau 7
17 mars 2011 à 19:43:05

il semble que j'ai récupéré de la lecture :-)
Bon, sur ma todo list, je verrai demain.

J'ai quand meme vérifié, mais /bin/sh n'est pas un lien symbolique.

Et par contre, est-ce qu'on est d'accord sur le fait que sh est le meme sur une freebsd que sur un debian ou autre ? (sans évoquer les problèmes de liens symboliques ... on parle bien de sh seulement ici)

godrik
godrik
Niveau 30
17 mars 2011 à 20:39:53

a ce que je sache sh sous debian ca n'existe pas
C'est un lien symbolique (ou lien dur peut etre) vers dash.

De memoire sous freebsd c'est un lien vers ksh.

souvent si le shell est appeller avec le nom "sh", le shell active un mode de compatibilite plus stricte.

Sankukai
Sankukai
Niveau 10
18 mars 2011 à 06:57:09

J'ai quand meme vérifié, mais /bin/sh n'est pas un lien symbolique.

Si on prend l'exemple d'OpenBSD :
$ ll /bin/sh
-r-xr-xr-x 3 root bin 425592 Feb 22 19:07 /bin/sh
Il ne s'agit pas d'un lien symbolique. Cependant, il s'agit bien d'une version de pdksh lancée avec l'option de compatibilité sh comme le man nous le dit si bien :

« sh is implemented as a run-time option of pdksh, with only those sh features whose syntax or semantics are incompatible with a traditional Bourne shell disabled. »

Du coup, hormis peut-être quelques UNIX exotiques lorsque l'on parle de /bin/sh il s'agit toujours d'un autre shell lancé avec un mode de compatibilité sh. En théorie, tu dois obtenir le même résultat quel que soit le shell pointé cependant certains mauvais élèves comme bash laissaient encore passer des basheries une fois le mode de compatibilité activé il y a quelques temps (à vérifier si c'est encore le cas pour les versions récentes).

iscario
iscario
Niveau 7
22 mars 2011 à 08:36:59

Ah très bien, c'est donc ca.
Merci pour les détails !

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment