Comment supprimer le fichier de code fortran?

J'ai besoin de supprimer un fichier à partir d'un Fortran code. Je suis sur ubuntu 12.04, x86_64. Je ne comprends pas pourquoi la procédure décrite ci-dessous ne fonctionne pas. Merci de m'aider à clarifier la situation (en fait, sur certains systèmes, cela fonctionne, mais pas sur le mien).

Il est une autre façon: je peux appeler directement commande unix rm -f file, mais j'aimerais savoir quel est le problème avec ma méthode. Merci.

L'étape 1. faire simple script del.sh et le mettre dans ~/bin

$ cat del.sh
[ $# -ge 1 ] && rm -f $1
$ chmod u+x del.sh; mv del.sh ~/bin 

L'étape 2. Code Fortran, del.pour:

character*100 cmd
character*30 file
call getarg(1,file)
write(cmd,100) file
100   format('source del.sh ',a30)
call system(cmd)
end

L'étape 3. Compilez et exécutez:

$ ifort -o del del.for
$ ./del file

Résultats:

sh: 1: source: not found

Quel est le problème? Le simple "source del.sh fichier' œuvres, mais pas de code Fortran... qui est source de confusion.

Du code Fortran:

100 format('del.sh ',a30)
100 format('bash del.sh ',a30)

fonctionne parfaitement, mais

100 format('sh del.sh ',a30)

ne fonctionne pas. J'ai bash installé, mais pas de csh. Merci.

  • Saviez-vous qu'un fichier peut également être supprimés en l'ouvrant avec le statut de "GRATTER" et puis le fermer. Ce est portable sur tous les systèmes d'exploitation et il n'est pas nécessaire de jouer avec les scripts, ou ce que la commande de systèmes d'exploitation est pour la suppression d'un fichier.
  • tasse et @AlexanderVogt : merci pour les réponses. Oui, Fortran pouvez supprimer les fichiers, je le sais. L'idée de l'appel de script dans le code Fortran devrait rendre votre programme plus flexible: le script peut être facilement modifiés et adaptés à vos besoins sans avoir à recompiler le projet. Par exemple, au lieu de la suppression du fichier, j'ai peut-elle sauvegarde et ainsi de suite. Aussi un autre ma question était: pourquoi l'approche décrite ne fonctionne pas? Je suis juste curieux...
  • l'ancien f77 standard en fait tout simplement dit "ZÉRO ne doit pas être spécifié avec un fichier nommé". Je ne sais pas comment portable c'est vraiment pour supprimer un fichier nommé de cette façon?
  • Bon point. Suppose que la meilleure option est de s'ouvrir avec le statut d'ancien et de proximité avec les supprimer, comme suggéré par AlexanderVogt.
  • Cela fonctionne si vous ajoutez #!/bin/sh en haut de votre script? Est-ce que /bin/sh existent?
  • l'ajout de ligne d'en-tête comme #!/bin/sh n'aide pas et oui /bin/sh existe (désolé - n'a pas remarqué votre question plus tôt).

InformationsquelleAutor axion | 2013-09-07