Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/12/2011, 10h02   #1
Membre du Club
 
Inscription : mai 2006
Messages : 312
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 312
Points : 50
Points : 50
Par défaut Transmission des alias

Bonjour,

Mon problème d'origine est d'exécuter avec perl une commande qui contient un alias déclaré dans mon .cshrc (voir ce sujet)

En fait j'ai l'impression que c'est davantage un problème de shell que de Perl dans la mesure où je ne trouve pas non plus moyen d'éxécuter l'alias depuis un script shell :

Code :
1
2
3
4
5
6
#!/bin/csh -f
echo `alias`
ll
alias toto 'ls -la'
echo `alias`
ll
Le echo `alias` est vide à ma grande surprise alors que ce n'est pas le cas en ligne de commande.
Le premier ll fait "ll: Command not found", le deuxième marche.

Je cherche donc un moyen pour que mon script shell "hérite" des alias définis dans mon .cshrc comme ma ligne de commande au lieu d'avoir une liste d'alias vide.
tnarol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 11h16   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
Bonjour,

en sourçant le fichier qui contient les aliases : csh -c 'source /chemin/fichier_aliases; alias toto' devrait afficher : toto ls -la;
mais si le fichier_aliases est un peu gros, je ne vois pas l'intérêt

?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 11h50   #3
Membre du Club
 
Inscription : mai 2006
Messages : 312
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 312
Points : 50
Points : 50
Citation:
Envoyé par N_BaH Voir le message
Bonjour,

en sourçant le fichier qui contient les aliases : csh -c 'source /chemin/fichier_aliases; alias toto' devrait afficher : toto ls -la;
mais si le fichier_aliases est un peu gros, je ne vois pas l'intérêt

?
J'ai fait une premier fichier test_cmd.sh :

Code :
1
2
3
4
 
#!/bin/csh
csh -c  "source alias.csh"
ll
Le fichier alias.csh est comme ça :

Code :
1
2
3
 
#!/bin/csh
alias ll "ls -la"
Quand j'exécute ./cmd_test.sh ça me fait :

Code :
1
2
 
ll: Command not found
tnarol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 12h10   #4
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
Code test_cmd :
1
2
3
4
#!/bin/csh
 
source alias.csh
ll
Code alias.csh :
alias ll 'ls -la'
l'appel ./test_cmd fait bien apparaître les fichiers du répertoire courant.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h21.


 
 
 
 
Partenaires

Hébergement Web