Page 2 sur 5

Re: Comment lancer un fichier ".sh " ?!

Posté : lun. 8 juil. 2019 19:27
par arghlub

Dernier message de la page précédente :

Salut Scrat,

Quand il y a des espaces dans des noms de fichiers/répertoires : soit mettre le chemin entier entre guillemets, soit comme l'a fait Alain, en échappant les espaces avec le caractère d'échappement anti-slash \ pour que le shell comprenne qu'il ne faut pas interpréter ces espaces comme des séparateurs vers d'autres arguments de la commande.
;)

Re: Comment lancer un fichier ".sh " ?!

Posté : lun. 8 juil. 2019 22:00
par Scrat
Bonjour arghlub.

Je sais qu'il y a des moyens de prendre en compte les espaces dans les noms de dossiers ou de fichiers dans une ligne de commande, mais pour l'avoir vécu au boulot, je persiste et signe en affirmant qu'utiliser des espaces dans les noms est une détestable habitude source d'innombrables emmerdements. C'est visiblement ce qui arrive à l'auteur de ce sujet. J'ai le même avis pour les caractères accentués. Ce n'est pourtant pas si compliqué de remplacer les espaces par le caractère _ qui ne pose pas de problème d'interprétation et ça reste tout aussi lisible. Épicétou ! Na ! :P :lol:

Re: Comment lancer un fichier ".sh " ?!

Posté : lun. 8 juil. 2019 22:03
par cyrille
+1000 avec Scrat, mettez des tirets ou n'importe quoi, mais les espaces c'est tjs source d'erreur

Re: Comment lancer un fichier ".sh " ?!

Posté : lun. 8 juil. 2019 22:37
par arghlub
@scrat : je n'ai pas dit le contraire :l :l pas la peine de te facher tout rouge :roll:
Je disais juste qu'on peut aussi "échapper" les espaces avec un anti-slash rien de plus. :l :D
Et effectivement les espaces (ou les caractères exotiques ou les tirets en début de noms de fichiers sont à éviter pour ne pas être embêter si on est un utilisateur du shell)


Ceci dit on va pas faire 3 pages sur les noms de répertoire avec espace, attendons le retour des commandes qu'a demandées Alain à MegaMatMan.
Surtout la commande "ls" pour vérifier que le fichier xroar.sh existe dans le répertoire en question et qu'il est saisi avec la bonne orthographe car on voit dans cette commande que MegaMatMan est bien positionné dans le répertoire "/home/megamatman/Emulateurs/Color Computer/XRoar 0.34.8" mais qu'à priori le fichier n'existe pas :
MegaMatMan a écrit :
dim. 7 juil. 2019 16:57

Code : Tout sélectionner

megamatman@IMF:~/Emulateurs/Color Computer/XRoar 0.34.8$ sudo chmod +x xroar.sh
[sudo] Mot de passe de megamatman :

Code : Tout sélectionner

chmod: impossible d'accéder à 'xroar.sh': Aucun fichier ou dossier de ce type
;)

Re: Comment lancer un fichier ".sh " ?!

Posté : mar. 9 juil. 2019 12:38
par Mia88
Salut tous,

J'ai mis de côté une commande pour remplacer tous les espaces dans les noms de fichiers et répertoires par des tirets.
Je l'utiliserai si besoin (donc pas encore testée).

Pour les répertoires (c'est récursif) :

Code : Tout sélectionner

find . -type d -regex ".*\ .*" -exec bash -c 'echo "$1";mv "$1" "${1// /_}"' '{}' '{}' \;
Et pour les fichiers :

Code : Tout sélectionner

find . -type f -regex ".*\ .*" -exec bash -c 'echo "$1";mv "$1" "${1// /_}"' '{}' '{}' \;
J'en entends penser : bah tiens, va faire ça en mode graphique... :l :lol:

edit : merci à argh pour la correction sur la 2ème ligne ;)

Re: Comment lancer un fichier ".sh " ?!

Posté : mar. 9 juil. 2019 13:19
par arghlub
Petite capture d'écran pour montrer la puissance des commandes données par Mia pour remplacer les espaces par des tirets ...
Là, j'ai juste fait ça avec 2 répertoires et 2 fichiers mais évidemment cela fonctionne aussi avec des milliers de fichiers à traiter et de manière “récursive” en traitant aussi le contenu des sous-dossiers :
Image

Ceci dit, ça serait bien qu'on ne fasse pas un blocage sur cette histoire de noms avec des espaces ...
Je ne suis pas sûr que ça soit la source du problème de MegaMatMan, attendons sa réponse aux commandes d'Alain, merci ;)

Re: Comment lancer un fichier ".sh " ?!

Posté : mer. 10 juil. 2019 06:37
par arghlub
Salut MegamatMan,

Bon, je vais prendre le problème à l'envers.

À priori c'est ce logiciel que tu veux installer (dis-moi si je me trompe) : https://www.6809.org.uk/xroar/
Si c'est bien ce logiciel (un émulateur de vieux ordinateurs Dragon), sache qu'il existe un PPA sur launchpad pour l'installer : https://launchpad.net/~sixxie/+archive/ubuntu/ppa

Pour cela :

Code : Tout sélectionner

sudo add-apt-repository ppa:sixxie/ppa

Code : Tout sélectionner

sudo apt update && sudo apt install xroar
Et tu auras la version 0.35.1 de xroar.

Note : si après l'installation, tu veux supprimer le PPA de tes sources de logiciels (c'est plus sain à mon goût, moins on a de PPA mieux c'est) :

Code : Tout sélectionner

sudo add-apt-repository --remove ppa:sixxie/ppa

Ça ne résout pas le souci que tu as avec le lancement du script shell, mais en attendant que tu donnes les retours de commande demandés par Alain, j'essaie de faire avancer ton schmilblick.
;)

Re: Comment lancer un fichier ".sh " ?!

Posté : jeu. 11 juil. 2019 11:55
par MegaMatMan
alain a écrit :
lun. 8 juil. 2019 04:19
Bonjour mégamatman.

D'abord merci Loutch pour la ligne de commande pour lancer au clic gauche un script Chelles :mrgreen: depuis Thunar ;)

Mégamatman, je commence a me poser des questions depuis tes derniers retours.
Pourrais tu nous donner le retour de:

Code : Tout sélectionner

cd ~/Emulateurs/Color\ Computer/XRoar\ 0.34.8

Code : Tout sélectionner

ls -la
Bonjour Alain & bonjour & merci à tous ceux qui m'ont également répondu :)

Alors voici les retours de ce que tu m'as demandé...

Code : Tout sélectionner

megamatman@IMF:~/Emulateurs/Color Computer/XRoar 0.34.8$ ls -la

Code : Tout sélectionner

total 620
drwxr-xr-x 2 megamatman megamatman   4096 jui  4 11:29 .
drwxrwxr-x 3 megamatman megamatman   4096 jui  4 11:04 ..
-rw-r--r-- 1 megamatman megamatman  65704 jun 20 00:18 001
-rwxrwxrwx 1 megamatman megamatman   8192 mai 31 23:09 bas10.rom
-rwxrwxrwx 1 megamatman megamatman   8192 mai 31 23:09 bas11.rom
-rwxrwxrwx 1 megamatman megamatman   8192 mai 31 23:09 bas12.rom
-rwxrwxrwx 1 megamatman megamatman   8192 mai 31 23:09 bas13.rom
-rwxrwxrwx 1 megamatman megamatman   8192 mai 31 23:09 bas14.rom
-rwxrwxrwx 1 megamatman megamatman   8192 jun  1 19:39 disk10.rom
-rwxrwxrwx 1 megamatman megamatman   8192 jun  1 01:08 disk11.rom
-rwxrwxrwx 1 megamatman megamatman   8192 mai 31 23:09 extbas10.rom
-rwxrwxrwx 1 megamatman megamatman   8192 mai 31 23:09 extbas11.rom
-rwxrwxrwx 1 megamatman megamatman   8192 jun  1 19:40 fd502ds.rom
-rwxrwxrwx 1 megamatman megamatman   8192 jun  1 01:08 fd502.rom
-rwxrwxrwx 1 megamatman megamatman 455440 fév 28  2018 xroar
Le fichier exécutable " xroar " existe bien :) & j'ai encore essayé à l'instant sous Ubuntu, il se lance parfaitement mais pas sous Mint ?!

[EDIT] merci à toi arghlub si on ne trouve pas de solution, j'essaierais d'installer XRoar comme tu me l'as montré :)

Re: Comment lancer un fichier ".sh " ?!

Posté : jeu. 11 juil. 2019 13:06
par arghlub
MegaMatMan a écrit :
jeu. 11 juil. 2019 11:55
Le fichier exécutable " xroar " existe bien :) & j'ai encore essayé à l'instant sous Ubuntu, il se lance parfaitement mais pas sous Mint ?!
oui il existe, mais il s'appelle «xroar» et pas «xroar.sh» (il n'y a pas d'extension «.sh») :
MegaMatMan a écrit :
dim. 7 juil. 2019 16:57

Code : Tout sélectionner

megamatman@IMF:~/Emulateurs/Color Computer/XRoar 0.34.8$ bash xroar.sh
bash: xroar.sh: Aucun fichier ou dossier de ce type
MegaMatMan a écrit :
jeu. 11 juil. 2019 11:55

Code : Tout sélectionner

megamatman@IMF:~/Emulateurs/Color Computer/XRoar 0.34.8$ ls -la
[...]
-rwxrwxrwx 1 megamatman megamatman 455440 fév 28  2018 xroar

Donc relance les commandes mais sans l'extension «.sh» dans le nom du fichier :
  1. se placer dans le répertoire du script avec :

    Code : Tout sélectionner

    cd ~/Emulateurs/Color\ Computer/XRoar\ 0.34.8
  2. donner les droits d'exécution au script (pas nécessaire dans ton cas car on voit dans ta commande «ls -la» que tout le monde a les droits d'eXécution : «rwxrwxrwx» en début de ligne) :

    Code : Tout sélectionner

    sudo chmod +x xroar
  3. puis lancer le script :
    • si c'est un script bash (BourneAgainSHell) :

      Code : Tout sélectionner

      sudo bash xroar
    • si c'est un script SHell de base :

      Code : Tout sélectionner

      sudo sh xroar
    • si il y a un “shebang” (par ex. : #!/bin/bash) en début de ce fichier, inutile de préciser le shell utilisé :

      Code : Tout sélectionner

      ./xroar
;)

Re: Comment lancer un fichier ".sh " ?!

Posté : jeu. 11 juil. 2019 13:37
par MegaMatMan
Re :)

Alors voici les retours car cela n'a toujours pas fonctionné...

Code : Tout sélectionner

megamatman@IMF:~/Emulateurs/Color Computer/XRoar 0.34.8$ sudo chmod +x xroar

Code : Tout sélectionner

[sudo] Mot de passe de megamatman :  

Code : Tout sélectionner

megamatman@IMF:~/Emulateurs/Color Computer/XRoar 0.34.8$ sudo bash xroar

Code : Tout sélectionner

xroar: xroar : ne peut exécuter le fichier binaire

Code : Tout sélectionner

megamatman@IMF:~/Emulateurs/Color Computer/XRoar 0.34.8$ sudo sh xroar

Code : Tout sélectionner

xroar: 1: xroar: Syntax error: "(" unexpected

Re: Comment lancer un fichier ".sh " ?!

Posté : jeu. 11 juil. 2019 13:40
par arghlub
aïe, c'est peut-être un script shell (ou pas), mais il y a une erreur de syntaxe en 1ère ligne :
MegaMatMan a écrit :
jeu. 11 juil. 2019 13:37

Code : Tout sélectionner

megamatman@IMF:~/Emulateurs/Color Computer/XRoar 0.34.8$ sudo sh xroar
xroar: 1: xroar: Syntax error: "(" unexpected
Donne-nous le retour de son contenu :

Code : Tout sélectionner

cat xroar

────[ EDIT ]───────────────────
Et, où as-tu trouvé cette version de Xroar ? (donne-nous le lien du site pour qu'on puisse y jeter un œil :geek: )
;)