tcl 스크립트에서 csh 스크립트를 실행하려고합니다.tcl 스크립트에서 csh 스크립트를 실행하려면 어떻게해야합니까?
Tcl의 스크립트는 아래의 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
}
통화 및 CSH 파일 (의 태초는) 다음과 같습니다 :
#!/bin/csh -f
echo abcdefgh
난 단지 내 유닉스 터미널에서 CSH 파일을 실행하면, 그것은 잘 작동합니다. Tcl 스크립트를 호출하면 실행되고 "hello"를 쓰고 i를 인쇄하지만 "abcdefgh"이 터미널에 나타나지 않기 때문에 csh 파일이 실행되지 않습니다. 나는 또한 다른 명령을 시도했다. 그리고 나는 항상 같은 문제가있다. 터미널에서 직접 실행할 때 잘 실행 되더라도, Tcl 스크립트에서 실행할 때 csh 스크립트는 실행되지 않는다.
(모두 내 Tcl의 스크립트 CSH 스크립트가 실행됩니다 ANS) 내 Tcl의 스크립트에서 내 CSH 스크립트를 실행하기 위해 무엇을해야
?
당신에게 대단히 감사합니다
부수적으로 [split $ files]에 대한 호출은 관련이 없습니다. 첫째, split은 split리스트를 반환하고 결과를 저장하지 않습니다. 둘째, glob가 이미 파일 이름을 목록으로 반환하기 때문에 문자열로 처리하고 분할하면 그 파일 이름에 공백이있는 파일 이름이 깨어집니다. – RHSeeger