Lorsque j'essaie d'exécuter un fichier (name.sh) dans la ligne de commande à l'aide de la commande ./name.sh, j'obtiens le message d'erreur suivant:
"." n'est pas reconnu en tant que commande interne ou externe, fichier exploitable ou batch
aidez-moi s'il vous plaît à exécuter le fichier .sh
windows
shell-script
Broam
la source
la source
Vous essayez d'exécuter une commande Linux à l'invite de commande Windows.
Sous Linux, la barre oblique est un séparateur de chemin. Sous Windows, la barre oblique inverse est un séparateur de chemin et la barre oblique indique généralement un argument.
Par conséquent, Windows pense que vous essayez d'exécuter une commande appelée "." et en analysant l'argument "/name.sh". La convention correcte serait ". \ Name.sh". De plus, Windows recherchera automatiquement votre commande dans le répertoire actuel pour que vous puissiez simplement taper "name.sh".
Le prochain problème que vous allez rencontrer est que Windows ne sait pas ce qu'est un script sh, encore une fois, il s'agit d'une chose Linux. Vous pouvez résoudre ce problème en installant Cygwin si vous voulez ou devez exécuter un script sh.
Cependant, à en juger par l’un de vos commentaires précédents, vous pouvez tout aussi bien renommer le script en name.bat et supprimer la ligne "#! / Bin / sh". Vous avez maintenant un fichier batch que Windows doit comprendre. Vous pouvez en savoir plus sur les fichiers de commandes ici .
la source
Sinon, vous pouvez vous tourner vers le côté obscur et installer Linux. A l'invite:
ou
Votre programme fonctionnera et vous aurez également un meilleur système.
la source
Meilleure solution à mon avis:
Téléchargez et installez .git pour Windows
Faites un clic droit sur le bureau et dites "git bash here"
Exécutez votre script comme dans Unix
Terminé!
Attention: beaucoup de commandes ne fonctionneront pas sous Windows! Mais encore, beaucoup de choses de base fonctionneront.
Si vous avez besoin de ce script régulièrement, vous pouvez créer un raccourci (sur votre bureau, par exemple):
Créer un raccourci vers
mintty.exe
votre bureauModifiez les propriétés du raccourci et modifiez la cible (conservez le chemin):
C:\Program Files\Git\usr\bin\mintty.exe" -h always /bin/bash -l -e 'D:\folder\script.sh'
la source
Vous essayez de faire fonctionner votre voiture avec du jus d'orange au lieu d'essence. Windows partage des commandes similaires stockées dans des fichiers .bat ou .cmd avec des scripts de shell Unix / Linux / zOS Unix Subsystem / * ix, ces deux familles de systèmes d'exploitation partageant un ancêtre commun, les machines DEC PDP-x.
Si vous voulez une gratification immédiate, vous devrez installer un environnement fournissant un programme "sh.exe" ou un programme "csh.exe" ou "bash.exe" (quelqu'un qui vous intéresse tsh.exe?)
Alternativement, si vous connaissez très bien les commandes de script Unix et que vous connaissez les commandes de fichier Windows .cmd et .bat, vous pouvez également traduire le fichier .sh en un fichier .bat ou .cmd. Malgré cela, vous rencontrerez souvent plus de programmes de style Unix qui n’ont pas d’équivalent sous Windows - grep, sed, vi, emacs, etc. outils. Mettez-le sur un lecteur flash, pour ces occasions spéciales.
la source
Quelqu'un a dit quelque chose à propos de MS-DOS en utilisant
/
des commandes et\
des chemins. Ceci est légèrement trompeur. Regardez mon exemple:N'a aucune différence d'effet. Oui, ce n'est pas vrai pour toutes les opérations - la réponse réelle est simplement non , ou sans Cygwin ou SSHD, vous ne pouvez pas.
Je ne sais parce que je bêtement passé une demi - journée à essayer de comprendre ce que
if then fi
eteval
,exec
faire avec-Djava.something
quand appelé.la source
Utilisez Github pour Windows. Il contient tous les exécutables de l'environnement Unix.
https://github-windows.s3.amazonaws.com/GitHubSetup.exe
la source
J'ai trouvé une solution différente et facile, appelée UnixUtil .
Téléchargez et décompressez-le sur le lecteur C :. Définissez la variable d'environnement
path
à inclureC:\UnixUtils\usr\local\wbin
.C'est important. NE PAS définir le chemin d'accès à
C:\UnixUtils\bin
la source
Pour être complet, je souhaite mentionner une nouvelle fonctionnalité «Windows Subsystem for Linux» pour Windows 10. Les détails sont décrits dans http://www.howtogeek.com/249966/how-to-install-and-use-the-linux- bash-shell-on-windows-10 /
Notez qu'il est nécessaire d'activer le commutateur “Developer Mode” et d'activer l'option “Windows Subsystem for Linux (Beta)”.
Pour ma part, j’ai trouvé que l’installation de Git pour Windows (que j’utilise de toute façon) est suffisante.
la source
Ceci est un vieux fil de discussion, mais pour ceux qui exécutent Windows 10. Il suffit d'ouvrir les fonctionnalités Windows à partir du panneau de configuration "Activer ou désactiver les fonctionnalités Windows".
Choisissez la fonctionnalité 'Windows Subsystem for Linux'. Après l’installation, vous avez «Bash» et vous pouvez même configurer des serveurs Linux natifs dans bash. Et bien sûr, la commande sh, au sein de bash, fonctionne également.
la source
Il est possible que le problème se trouve réellement dans le fichier
name.sh
- vous essayez d’utiliser la.
commande mais il tente d’exécuter un type de shell (par exemplecsh
, je pense) dans lequel cette commande n’est pas valide.Alors:
name.sh
commencez-vous par le bon#!/bin/sh
(si vous essayez réellement de courirsh
)?la source
ok, il y a BEAUCOUP mal avec ça - lâchez le #! / bin / sh et changez l'extension en batte, et cela pourrait fonctionner avec quelques corrections supplémentaires. Ensuite, vous pouvez simplement l'invoquer par son nom de fichier.
La syntaxe d'un script shell Unix et d'un fichier de commandes Windows n'est pas trop similaire. cygwin, ou un tas de déconner 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
la source
drop the #!/bin/sh, and change the extention to bat, and it might work with a few more fixes.
Quoi?! Je suppose que vous n’avez jamais essayé cela… Sous Windows, même les fonctionnalités les plus simples de bash ne sont pas prises en charge ou nécessitent une syntaxe longue.Si vous avez une machine Linux à la maison (ou au travail) et que vous êtes connecté au même réseau, et que ce réseau est sécurisé, cela pourrait faire l'affaire:
mount //WinMachine/Share LinuxFolder
(IIRC, et nécessite Samba ).la source
Pour exécuter le script shell à partir des fenêtres. Commencez par utiliser la commande: dos2unix, puis utilisez votre commande normale: sh runide.sh
Cela fonctionnera.
la source
Bien que les réponses existantes ici étaient correctes au moment, Windows 10 ne comprend maintenant en option une version modifiée d'Ubuntu lancer un shell bash complet .
Une fois rendus exécutables, les scripts peuvent être exécutés de la manière habituelle depuis bash, par exemple:
Si vous souhaitez exécuter un script directement à partir de Windows, vous pouvez créer un raccourci dans le même répertoire et définir la «cible» sur quelque chose comme:
Si le chemin de votre script est relatif à l'emplacement du raccourci (comme dans l'exemple ci-dessus), assurez-vous que le champ "Démarrer dans" est également vide.
la source