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

le bash ou le sh ?

infiltrator
infiltrator
Niveau 5
27 octobre 2014 à 23:26:03

Voila je me lance dans l'ecriture de script sous linux ,d'aprés ce que j'ai lu , il y'a différent scripts shell , mais à premiere vue les plus " utilisé " sont le bash et le sh donc je voulais savoir par lequel commencer et s'il y avait beaucoup de différences.

Nh3xus
Nh3xus
Niveau 10
28 octobre 2014 à 00:19:29

Tu peux faire comme tu veux.

Mais en gros :

sh est plus générique que bash.

sh est une sorte de dénominateur commun des shells :

Ce qui veut dire qu'un script fait en sh sera exportable sur à peut prêt n'importe quel système GNU/Linux.

bash est très répandu car plutôt mature et plus facile d'accès que zsh ou ksh par exemple.

Tu retrouve des scripts bash pour le démarrage d'une distribution Linux par exemple.

C'est SysVinit qui se base sur ce principe.

Mon avis perso sur la question :

Commence par Bash si tu sais que tes scripts ne seront utilisés que par toi.

Knakis
Knakis
Niveau 10
28 octobre 2014 à 06:51:10

Les scripts de SysVinit utilisent sh sous Slackware hein, ils commencent avec « !#/bin/sh ».

Et je ne suis pas d'accord avec la dernière phrase. Il utilisera toujours sh, sauf si il a besoin de basheries ou de zsherie.

DuckSauce
DuckSauce
Niveau 14
28 octobre 2014 à 08:16:07

De mon point de vu de non spécialiste, la syntaxe du sh est assez désuète.
Je me tape souvent des erreurs que je ne comprends même pas. :(

debianthrax
debianthrax
Niveau 6
28 octobre 2014 à 09:27:02

Perso je trouve le csh moins chelou que bash :hap:

nounoursheureux
nounoursheureux
Niveau 10
28 octobre 2014 à 09:34:02

Peut-être mais il est moins répandu, donc si il distribue son script les personnes qui n'auront pas csh ne pourront pas l'exécuter. D'où l'intérêt d'utiliser sh ou bash, bash étant le shell le plus populaire et sh étant compatible avec tous les shells (il me semble :( )

vava740
vava740
Niveau 10
28 octobre 2014 à 09:55:55

sh c'est le seul shell POSIX que t'es sûr d'avoir sur à peu près tous les Unix. Sous GNU/Linux on a souvent bash par défaut, mais sous FreeBSD c'est csh/tcsh, sous OpenBSD c'est ksh. Mais dans tous les cas on a sh, et il se comporte à peu près de la même façon.

Ça veut pas dire qu'un script sh qui marche sur ton système marchera avec d'autres implémentations de sh, y'a des parcitularités qui ne sont pas adressées par le standard POSIX et par conséquent ça créé des différences, notamment dans la gestion de la « scope » pour les variables. Et bien sûr si tu veux une bonne portabilité, il faut te limiter à utiliser des commandes POSIX, et ne pas utiliser les extensions fournies par ton système à ces utilitaires (et GNU ajoute pas mal d'extensions, en particulier les options longues que tu peux oublier si tu veux porter tes scripts sous BSD).

http://pubs.opengroup.org/onlinepubs/009696699/utilities/contents.html

Et en vrai il ne faut même pas assumer que toutes ces commandes seront présentes, typiquement sous Debian GNU/Linux j'ai pas (par défaut) les commandes bc et talk (et j'ai pas tout testé).

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