79 votes

Comment exécuter un fichier .sh sous Windows ?

Lorsque j'essaie d'exécuter un fichier (name.sh) dans la ligne de commande par la commande ./name.sh , j'obtiens l'erreur suivante :

"." n'est pas reconnu comme une commande interne ou externe, opérable ou batch fichier

s'il vous plaît aidez-moi à exécuter le fichier .sh

0voto

Sridhar GV Points 1

Pour exécuter le Shell Shell à partir de Windows. Utilisez d'abord la commande : dos2unix puis vous pouvez utiliser votre commande normale : sh runide.sh

Ça va s'arranger.

0voto

Molomby Points 1675

Bien que les réponses existantes ici étaient correctes à l'époque, Windows 10 fait incluent maintenant facultativement une version modifiée d'Ubuntu exécutant un Shell bash complet. .

Une fois rendus exécutables, les scripts peuvent être exécutés de la manière habituelle à partir de bash, par exemple :

chmod +x myscript.sh
./myscript.sh

Si vous voulez exécuter un script directement à partir de Windows, vous pourriez créer un raccourci dans le même répertoire et définir la 'cible' à quelque chose comme :

C:\Windows\System32\bash.exe -c "./myscript.sh"

Si le chemin de votre script est relatif à l'emplacement du raccourci (comme l'exemple ci-dessus), assurez-vous que le champ 'Start in' est également vide.

0voto

Declan Shanaghy Points 941

Il est possible que le problème soit en fait dans le fichier name.sh -- vous essayez d'utiliser le . mais il tente d'exécuter une sorte de Shell (par ex, csh je pense) dans laquelle ce n'est pas une commande valide.

Alors : est-ce que name.sh commencer par le bon #!/bin/sh (si vous essayez réellement d'exécuter sh ) ?

0voto

Chochos Points 3364

Ok, il y a beaucoup de choses qui ne vont pas avec ça - laisse tomber le #!/

La syntaxe d'un Shell Shell sous unix et d'un fichier batch sous Windows n'est pas très similaire. cygwin, ou un tas de trucs avec unxutils pourrait faire quelque chose qui fonctionnerait dans les deux, mais à moins d'être ABSOLUMENT sûr que l'environnement est toujours le même, cela ne vaut pas la peine de se casser la tête.

0voto

Camilo Martin Points 2476

Si vous avez une machine Linux à la maison (ou au travail) et qu'elle est connectée au même réseau, et que ce réseau est sûr, cela peut faire l'affaire :

  1. Créez un dossier partagé sous Windows (assez facile, mais assurez-vous que le réseau est protégé contre les intrus).
  2. Montez-le sous Linux avec mount //WinMachine/Share LinuxFolder (IIRC, et nécessite Samba ).
  3. En utilisant quelque chose comme PuTTY Connectez-vous à distance à cette boîte Linux.
  4. Exécutez votre commande dans le dossier monté.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X