İki tcl komut dosyası var. Ve ilk bittiğinde ikinci senaryoyu çalıştırmak istiyorum. Nasıl yapabilirim?Tcl komut dosyasını diğer tcl komut dosyasında nasıl çalıştırılır?
cevap
Gerçekten ne anlama geliyorsunuz.
Tek yön
source /the/path/to/the/first.tcl
source /the/path/to/the/second.tcl
başka bir yöntem de ilk senaryonun altına Yukarıdaki örnekten source
ikinci çağrıyı eklemektir yapacağını üçüncü ("ana") senaryo yazmaya etmektir. İlk yaklaşıma
Değişiklik: komut source
için ana komut, bir deyimsel yolu ile aynı dizinde bulunan yürütülecek eğer onları kaynak olursa olsun ne çalışacaktır
set where [file dirname [info script]]
source [file join $where first.tcl]
source [file join $where second.tcl]
Bu yoludur Geçerli işlem dizini ve proje dizininin bulunduğu yer.
Sadece ikinci komut dosyasını çalıştırmak için kaynak kullanmanız gerekiyor.
source "/tmp/whatever.tcl"
soru precicely tcl içinden tcl kod çalıştırmanın hedefi başarabilmek için yollar ton vardır formüle değildi nedeniyle bu, genellikle doğru cevap iken. Bu konuya ayrıntılı olarak girmemeliydim, çünkü kodun uygulanmasının anlaşılması, tcl itselve'nin anlaşılmasında önemli bir noktadır.
kaynak komut klasik bir şekilde komut dosyalarını yürütme ile karıştırmak edilmemelidir kaynak
yok, ben iplik marş istedi ne düşündüğünü. Kaynak komut, c/perl/php. java veya python gibi diller sadece "ithalat" mekanizmalarına sahiptir.
Buradaki fark, bu dillerin karşılık gelen kaynak/binary/baytkod dosyalarına bağlı olan, kullanılabilir paketlerin bir iç veritabanı oluşturmasıdır. Bir içe aktarma deyimi yazarak, bağlı kaynak veya bayt kodu veya ikili dosyalar yüklenir. Bu, ek kod yazmadan daha kapsamlı bir bağımlılık yönetimi sağlar. Tcl'de bu ad alanlarına sahip olunabilir ve paket için komut gerektirebilir. Örnek:
bu source.tcl olduğunu varsayalım: diyorsunuz gibiproc foo {bar} {puts "baz"}
set BAM "BOO"
Şimdi, "ana" senaryosu var. Ben buna "ana" derim. Bu içeriğe sahiptir:
set BAM {my important data}
source source.tcl
#also the function foo can now be used, becouse source reads the whole script
foo {wuz}
set BAM
#will output "BOO"
exec komutu
Elinden yepyeni tercüman örneğini başlayan ek yükü ile canlı da yapın:
set BAM {my important data}
exec tclsh source.tcl
#The variable BAM will not be modified. You can not use the function foo.
eval komutu
Eval, programlanmış bir kod gibi bir dizeyi veya bir listeyi (tcl'de her şey bir dizedir) değerlendirebilir. Tam kaynak dosyayı bir dizeye yüklemeniz gerekir. Ve sonra, ana kaynak dosyanızda bir şeylerin üzerine yazmamak için, kodu ayrı bir kapsam dahilinde değerlendirmek için eval'ı kullanın.
set fp [open "somefile" r]
set code_string [read $fp]
close $fp
eval $code_string
- 1. Kullanıcı tcl dosyasından nasıl değiştirilir
- 2. TCL
- 3. TCL
- 4. Vim komut dosyasında harici komut nasıl çalıştırılır?
- 5. tcl exec komutunu kullanarak python komut dosyalarını nasıl çalıştıracağız
- 6. Bir dosya adında test7.tcl var Tcl
- 7. Bir tcl komut dosyasından bir bash komut dosyasını çağırıp döndürme ve durumdan çıkma durumu
- 8. Tcl/Tk
- 9. eclipse'de php komut dosyasını nasıl çalıştırılır
- 10. tcl 8.5 Fedora 22
- 11. Python Tkinter atma Tcl hatası
- 12. tcl komutunun bir değişkene yeniden yönlendirilmesi, tcl sürümü: 8.4
- 13. $ expect_out, TCL/EXPECT'te nasıl çalışır?
- 14. Tcl dizeleri nasıl birbirine eklenir?
- 15. Tcl/Tk örnekleri?
- 16. Listeyi Tcl yordamına geçirme
- 17. Bir veya tcl anahtar deyiminde nasıl kullanırım?
- 18. tcl exec stdout'u ihtiyacı yönlendirildi sonuç çok
- 19. Bir komut dosyasında bir matlab komut dosyasını çağır
- 20. "Tcl Tercüman Hatası" nı Yakalayın
- 21. Komut dosyasında xdebug nasıl kapatılır?
- 22. Diğer işlemlerden ConEmu örneğinin çalıştırılmasında komut nasıl çalıştırılır
- 23. TCL: Tüm .tcl dosyalarının kaynağını oluşturmak için alt dizinleri ardışık olarak arayın
- 24. Linux'ta Tcl/Tk'den nasıl URL açılır
- 25. Kabuk komut dosyasında değişkene komut kaydedilemiyor
- 26. Matlab komut satırından nasıl çalıştırılır?
- 27. OSX'de aygıt bağdaştırıcısında komut dosyası nasıl çalıştırılır
- 28. BASH komut dosyasında bir uzak sistemde nasıl bir komut yürütürsünüz?
- 29. SSIS'den PowerShell Komut Dosyası Nasıl Çalıştırılır
- 30. tcl: Dizeden numara almanın en kolay yolu?