J'essaie d'exécuter un script csh à partir d'un script tcl.Comment puis-je exécuter un script csh à partir d'un script tcl?
Le script tcl ci-dessous appelle un script csh
#!/usr/bin/tclsh
set scripts_path /scratch/TCL_scripts/scripts_adders
set synthesis /scratch/TCL_scripts/synthesis.csh
set files [glob -directory $scripts_path *]
split $files
set files [lsort $files]
set i 1
foreach script $files {
puts "hello"
# puts [pwd]
exec /bin/csh -c $synthesis
puts $i
}
Et le (début du) fichier HCS est ci-dessous:
#!/bin/csh -f
echo abcdefgh
Lorsque j'exécute seul le fichier csh de mon terminal unix, ça fonctionne bien. Quand j'appelle mon script Tcl, il s'exécute et écrit "bonjour" et imprime i, mais le fichier csh n'est pas exécuté car "abcdefgh" n'apparaît jamais dans le terminal. J'ai aussi essayé d'autres commandes, et j'ai toujours le même problème: le script csh n'est jamais exécuté quand je l'exécute à partir d'un script Tcl, même s'il fonctionne correctement quand je l'exécute directement depuis le terminal.
(deux mon script Tcl ans de script csh sont exécutables)
Que dois-je faire pour exécuter mon script csh de mon script Tcl?
Merci beaucoup
En note, l'appel à [split $ files] est étranger. Tout d'abord, split renvoie la liste séparée et vous n'économisez pas le résultat. Deuxièmement, parce que glob renvoie déjà les noms de fichiers sous forme de liste et, si vous le traitez comme une chaîne et scindez dessus, il va juste finir de se casser sur les noms de fichiers avec des espaces dedans. – RHSeeger