Cd en script unix

PhilYves -  
 PhilYves -
Bonsoir
comment fait-on pour changer de dir par script sous csh (tru64)

Je pensais par ex ecrire dans le script top:

#!/bin/csh
cd toto


le passer en mode exec et ça roule: je tape top et je me retrouve dans toto, mais ça ne marche pas !! Why
A voir également:

2 réponses

mateo
 
Salut,
est-ce que ton repertoire courant est dans ton PATH???
sinon tu tape ./top une fois que tu a mis les droits en execution
Enfin je crois.

mateo
0
jisisv Messages postés 3678 Statut Modérateur 934
 
C'est normal , ton script va se construire son propre environnement( hérité du père mais distinct, dans un autre processus)
Il faut donc exécuper celui-ci dans le shell courant(un petit peu comme si tu faisais un "coller" des instructions:


johand@horus:~$ cd src/
johand@horus:~/src$ cat mycd.sh
#! /bin/sh
cd fortran
pwd
ls
johand@horus:~/src$ ./mycd.sh
/home/johand/src/fortran
MARKS.DAT   SIEVE.FOR.bak  simple.exe  simple.f77.bak  stats
MARKS.DAT~  STATS.FOR      simple.f    simple.lis
SIEVE.FOR   STATS.FOR.bak  simple.f77  simple.obj
johand@horus:~/src$ source ./mycd.sh
/home/johand/src/fortran
MARKS.DAT   SIEVE.FOR.bak  simple.exe  simple.f77.bak  stats
MARKS.DAT~  STATS.FOR      simple.f    simple.lis
SIEVE.FOR   STATS.FOR.bak  simple.f77  simple.obj
johand@horus:~/src/fortran$


Observe le répertoire courant renseigné par le prompt.
Tu utilises donc source (ou '.' mais c'est vraiment pas très lisible)pour interpréter le script dans le shell courant
aides possibles(non exhaustif)
*
johand@horus:~/src/fortran$ help source
source: source filename
Read and execute commands from FILENAME and return. The pathnames in $PATH are used to find the directory containing FILENAME.
*
man bash
Questions apparentées
help export

Johan
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
0
PhilYves
 
Merci pour tes ex mais le pb est de toujours faire source script
Moi pour mes utilisateurs je voudrais faire script seulement mais ça ne marche pas

As-tu des idées ?
0