Fusionner script shell et exécutable
Résolu
chris79
Messages postés
97
Statut
Membre
-
chris79 Messages postés 97 Statut Membre -
chris79 Messages postés 97 Statut Membre -
Bonjour,
Imaginons un script shell tout simple qui lance 2 exécutables l'un après l'autre du genre :
#!/bin/bash
./exeNumero1;
./exeNumero2;
J'aimerai fournir à l'utilisateur final un seul et unique fichier qui combine les exécutables et le script (en sachant que je ne possède pas les codes sources des exécutables :-) ).
Ainsi le fichier obtenu pourrait être lancé à partir de n'importe quel endroit de l'arborescence.
L'objectif ici est de ne pas donner en argument du script les chemins des exécutables et même de s'affranchir de leurs présences puisqu'ils seraient directement intégrés au fichier binaire !
Quelqu'un sait il si cela est possible ??
Merci pour votre aide.
(Je prends toutes les éventuelles solutions...Shell, langage C, ...)
Imaginons un script shell tout simple qui lance 2 exécutables l'un après l'autre du genre :
#!/bin/bash
./exeNumero1;
./exeNumero2;
J'aimerai fournir à l'utilisateur final un seul et unique fichier qui combine les exécutables et le script (en sachant que je ne possède pas les codes sources des exécutables :-) ).
Ainsi le fichier obtenu pourrait être lancé à partir de n'importe quel endroit de l'arborescence.
L'objectif ici est de ne pas donner en argument du script les chemins des exécutables et même de s'affranchir de leurs présences puisqu'ils seraient directement intégrés au fichier binaire !
Quelqu'un sait il si cela est possible ??
Merci pour votre aide.
(Je prends toutes les éventuelles solutions...Shell, langage C, ...)
A voir également:
- Fusionner script shell et exécutable
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Comment fusionner des pdf sans logiciel - Guide
- Fusionner mp3 - Télécharger - Audio & Musique
- Ghost script - Télécharger - Polices de caractères
4 réponses
Hello,
Si tu crées un package qui va installer les fichiers au bon endroit et que tu ajoutes l'emplacement dans le PATH, peut-être pourras-tu lancer ton fichier depuis n'importe quel endroit ?
Est-ce clair ?
A+
Si tu crées un package qui va installer les fichiers au bon endroit et que tu ajoutes l'emplacement dans le PATH, peut-être pourras-tu lancer ton fichier depuis n'importe quel endroit ?
Est-ce clair ?
A+
hello
il faut convertir les exécutables en ascii avec base64, placer le texte dans le script et recréer les binaires. Evidemment, l'ascii peut être gros,
# on convertit les exécutables en ascii
base64 exeNumero1 > exe1.base64
base64 exeNumero2 > exe2.base64
# dans le script:
cat << EOF > exe1.base64
## ici contenu du fichier exe1.base64, du genre :
f0VMRgEBAQAAAAAAAAAAAAIAAwABAAAAEIMECDQAAABsFwAAAAAAADQAIAAIACgAJ
AAAANIAECDSABAgAAQAAAAEAAAUAAAAEAAAAAwAAADQBAAA0gQQINIEECBMAAAAT
AAABAAAAAAAAAACABAgAgAQIwAQAAMAEAAAFAAAAABAAAAEAAAAMDwAADJ8ECAy
...
EOF
cat << EOF > exe2.base64
## ici contenu du fichier exe2.base64
EOF
# on recrée les binaires
base64 -d exe1.base64 > exeNumero1
base64 -d exe2.base64 > exeNumero2
chmod u+x exeNumero[12]
# on peut les exécuter
./exeNumero1;
./exeNumero2;
il faut convertir les exécutables en ascii avec base64, placer le texte dans le script et recréer les binaires. Evidemment, l'ascii peut être gros,
# on convertit les exécutables en ascii
base64 exeNumero1 > exe1.base64
base64 exeNumero2 > exe2.base64
# dans le script:
cat << EOF > exe1.base64
## ici contenu du fichier exe1.base64, du genre :
f0VMRgEBAQAAAAAAAAAAAAIAAwABAAAAEIMECDQAAABsFwAAAAAAADQAIAAIACgAJ
AAAANIAECDSABAgAAQAAAAEAAAUAAAAEAAAAAwAAADQBAAA0gQQINIEECBMAAAAT
AAABAAAAAAAAAACABAgAgAQIwAQAAMAEAAAFAAAAABAAAAEAAAAMDwAADJ8ECAy
...
EOF
cat << EOF > exe2.base64
## ici contenu du fichier exe2.base64
EOF
# on recrée les binaires
base64 -d exe1.base64 > exeNumero1
base64 -d exe2.base64 > exeNumero2
chmod u+x exeNumero[12]
# on peut les exécuter
./exeNumero1;
./exeNumero2;
Merci à vous deux pour vos réponses.
La solution 1 est certes intéressante mais nécessite la présence de plusieurs fichiers sur le PC....je voudrais éviter cela...je veux vraiment un seul et unique "exécutable", sans aucun pré-requis (PATH) sur le PC hôte (limite je pourrais l'exécuter à partir d'une clé USB quelconque sur un PC quelconque....).
La solution 2 me parait être ce que je cherche.....je vais voir ce que je peux en faire.....
Je vous tiens au courant.
Encore merci !
La solution 1 est certes intéressante mais nécessite la présence de plusieurs fichiers sur le PC....je voudrais éviter cela...je veux vraiment un seul et unique "exécutable", sans aucun pré-requis (PATH) sur le PC hôte (limite je pourrais l'exécuter à partir d'une clé USB quelconque sur un PC quelconque....).
La solution 2 me parait être ce que je cherche.....je vais voir ce que je peux en faire.....
Je vous tiens au courant.
Encore merci !
Salut,
après quelques tests, cette dernière solution me permet de recréer mes exécutables à l'endroit où se trouve le script.
Je les exécute, puis les efface pour revenir à l'arborescence d'origine.
C'est simple et transparent pour l'utilisateur final, parfait !
Un grand merci à vous deux.
A bientôt.
après quelques tests, cette dernière solution me permet de recréer mes exécutables à l'endroit où se trouve le script.
Je les exécute, puis les efface pour revenir à l'arborescence d'origine.
C'est simple et transparent pour l'utilisateur final, parfait !
Un grand merci à vous deux.
A bientôt.