dire que je mettais un fichier TCSH exécutable dans /path/to/my_script.csh
et mon répertoire actuel est n'importe où, par exemple je suis dans / chemin p>
donc je tape / my_script .csh p>
Je veux avoir une ligne dans my_script.csh qui retournera "/path/to/my_script.csh" - comme de Ruby's's P>
__FILE__
4 Réponses :
#!/bin/tcsh echo "I am $0."
Cela donne le chemin du répertoire actuel au script, pas le chemin absolu.
Si vous voulez assurer le même résultat (chemin complet et nom de script), essayez quelque chose comme ceci: alors vous pouvez l'appeler comme foo.sh ,./foo.sh, Certains / inférieurs / dir / foo.sh et obtiennent toujours le même résultat, peu importe la façon dont il s'appelle. p> p>
Mal shell -_-
en coquille C, essayez comme ceci:
Malheureusement, lorsque je fais cela dans mon script #! / Bin / csh, et exécutez-le avec un chemin relatif (./myscript.csh), il renvoie toujours mon répertoire domestique. Peu importe où je mets ce script. dirname $ 0 code> est '.' ' et
pwd code> renvoie ma maison $
@ mdiehl13 Le problème que vous avez décrit ne m'arrive pas. Voyez-vous toujours le même problème? Vous aurez peut-être besoin de vérifier votre fichier .cshrc et de voir s'il existe des configurations spéciales relatives au paramètre de chemin de répertoire.
@euccas non, étrange (et bon). Je ne vois plus ce comportement
Si vous voulez un chemin absolu, cela devrait vous aider à sortir: source: http://tipsarea.com/2013/04/11/frow-a-get-the-script-path- Nom-in-cshtcsh / p> p>
Merci de m'avoir sauvé plus de frustration sur la différence de différencie entre la source et un script appelant