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

Fichier sh execute une ligne de commande

Chocolayte
Chocolayte
Niveau 73
20 octobre 2012 à 13:25:35

Bonjour ! :noel:

J'ai une liste de dossiers prob1 prob2 prob2 etc... Chaque dossier contient ces fichiers :
https://image.noelshack.com/fichiers/2012/42/1350732074-fichiers.png

L'idée, c'est de pouvoir remplacer ma commande :
g++ prog1.cc fonction1.cc -o exe1
Par :
g 1

J'ai donc un .bashrc dans lequel se trouve :
alias g="sh /home/choco/Documents/sh/gplus.sh"
Et dans ce gplus.sh se trouve :
echo g++ prob$1.cc fonction$1.cc -o exe$1

Donc quand je tape " g 1 ", j'ai bien ma ligne g++ prog1.cc fonction1.cc -o exe1 qui s'affiche, mais puisque j'ai utilisé un echo, ça ne s'exécute naturellement pas. J'ai essayé avec un > mais j'ignore comment lui dire d'envoyer tout ça au shell.

:d) Par quoi dois-je remplacer mon echo pour que mon sh execute une ligne de commande ? :p)

Chocolayte
Chocolayte
Niveau 73
20 octobre 2012 à 13:28:59

Et s'il vaut mieux m'envoyer sur le forum Proggramation, faites le moi savoir. Merci !

Chocolayte
Chocolayte
Niveau 73
20 octobre 2012 à 13:38:17

En faisant une chose similaire avec kate, j'ai compris comment faire. :rire:

Fallait juste enlever le echo. Ça semble pourtant évident. :sarcastic: Vous pouvez donc laisser couler. A bientôt surement. :noel:

godrik
godrik
Niveau 30
20 octobre 2012 à 17:36:21

ce que tu veux est un Makefile.

Chocolayte
Chocolayte
Niveau 73
20 octobre 2012 à 20:20:57

J'arrive à fonctionner sans, mais j'me suis un peu renseigné sur makefile et ça laisse des possibilités plus abouties. Merci. =)

toinard
toinard
Niveau 2
23 octobre 2012 à 11:04:39

Sinon tu peux directement écrire dans ton .bashrc :
alias g="g++ machin truc"

pour une ligne de commande t'as pas besoin de créer un script sh

deepblue
deepblue
Niveau 16
23 octobre 2012 à 13:54:55

Makefile ou une fonction dans ton bashrc :

function foo() {
g++ prob$1.cc fonction$1.cc -o exe$1
}

Dans ton shell : foo bar <=> g++ probbar.cc fonctionbar.cc -o exebar

Chocolayte
Chocolayte
Niveau 73
23 octobre 2012 à 21:33:38

Effectivement, j'suis pas très malin pour le coup... :noel:
Thx toinard. ^^"

J'sais encore pas bien me servir du bashrc, j'vais me renseigner sur les fonctions, ça m'ouvrira peut-être d'autres possibilités. Merci à toi aussi deepblue ! Mais :

alias foo="g++ prob$1.cc fonction$1.cc -o exe$1"

function foo() {
g++ prob$1.cc fonction$1.cc -o exe$1
}

C'est strictement pareil n'est-ce pas ?

Chocolayte
Chocolayte
Niveau 73
25 octobre 2012 à 19:49:59

Salut ! :noel:

alias cmkdir="mkdir $1"
alias ccd="cd $1"
:d) A la suite ça marche.

alias cm="mkdir $1 ; cd $1"
:d) Ensemble ça marche pas.

Mon prof n'a pas de solution. J'ai vaguement essayé avec une fonction mais bide. :pf:

godrik
godrik
Niveau 30
25 octobre 2012 à 21:19:08

les alias ne marchent pas comme ca. Fait une fonction.

Chocolayte
Chocolayte
Niveau 73
25 octobre 2012 à 21:21:26

Si, tu peux exécuter plusieurs commandes à la suite avec un unique alias, c'est le mkdir qui pose problème. 'fin ok, j'vais essayer de coder ça, nous verrons c'que ça en dit. :noel:

SeaVe_CraSh
SeaVe_CraSh
Niveau 10
25 octobre 2012 à 22:02:09

Choco sur ce forum ? :noel:

Sankukai
Sankukai
Niveau 10
26 octobre 2012 à 15:26:12

Les alias bash ne supportent pas les paramètres. Comme le dit godrik il faut faire une fonction.

Dans le cas de tes deux premiers alias, ça marche car ça ne fait rien. :p
$1 vaut " " et cmkdir et ccd deviennent respectivement mkdir et cd. Pour t’en convaincre, fais les alias suivant :
alias cmkdir="mkdir $1;"
alias ccd="cd $1;"
Tu verras que ça ne marchera plus.

Du coup quand tu utilises ton troisième alias, ça foire car :
$ cm toto
devient :
$ mkdir ; cd toto

Tu peux faire un truc du genre :
function cm()
{
mkdir $1; cd $1;
}

Chocolayte
Chocolayte
Niveau 73
26 octobre 2012 à 18:04:16

Mui Seave. :oui:

Oui Sankukai, j'ai essayé une fonction ce matin en cours et ça a fonctionné. Merci pour l'explication, c'est plus clair concernant les alias. :o))

SeaVe_CraSh
SeaVe_CraSh
Niveau 10
26 octobre 2012 à 22:39:36

:-) Je ne vais pas blablater ce topic.

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