Merhabalar,

betik dillerinde yorumlayıcı genelde dosya başında belirtiliyor;

#!/bin/bash
#!/path/to/python

gibi... Bu şekilde belirtmeden de yorumlayıcı ismi ile ilgili dosyayı
çalıştırmak da yeterli olabiliyor;

python betik_dosyası
bash betik_dosyası

gibi... Yani bildiğim yukarıda görüldüğü kadarı ile bir dosya için bir
yorumlayıcı belirtebiliyoruz. Sizin dediğinizin yapılabilmesi için Python
yorumlayıcısının BASH dilini ya da BASH kabuk yorumlayıcısının Python
dilini anlaması gerekli. Bu ne kadar anlamlı bilemiyorum fakat ilk bakışta
çalışacak bir yapı gibi durmuyor. Bu yapılmış olsa Python ve BASH aynı dil
kabul edilebilirdi sanırım, ya da hangi dil diğerini anlarsa, diğer
yorumlayıcı tarafından anlaşılabilen dilin yorumlayıcısına gerek kalmazdı
da diyebiliriz sanırım.

Belki aralarında C && C++ gibi bir ilişki olsaydı (birini diğerinin
iyileştirilmiş ve ek özellik eklenmiş versiyonu olarak düşünürsek) C++
koduna gömülen C kodunu belirten "extern C"  gibi bir belirteç ile de
yapılaiblirdi. Bu tarz bir ilişkilendirme var mı aralarında emin değilim
açıkcası...

Benim önerim, diğer arkadaşların önerdiği gibi Python içerisinden BASH ya
da BASH içerisinden Python betiğini çağırmanız olacak. Birbirleri ile
ortaklaşa kullanılması gereken değişkenler mevcutsa çevre/ortam
değişkenlerini önerebilirim (enviroment variables);

http://docs.python.org/2/using/cmdline.html
http://genepath.med.harvard.edu/mw/Bash:HOW_TO:_Set_an_environment_variable_in_the_bash_shell

Yani kısacası Python için *os.environ* bash için ise *export* vs komutları.


*Anekdot:* BASH ile ana (parent) prosese ait değişkenleri değiştirebilmek
için çalıştırılacak betik başına fazladan nokta koymak gerekiyor.

./betik_dosyası

-> Bu şekilde dosyayı çalıştıran ortamda VAR1="var1 value" şeklinde bir
anahtar/değer ikilisini (ya da değişken) olduğunu düşünürsek, betik dosyası
içerisinde;

VAR1="new var1 value"

tanımı, yeni bir VAR1 değişkeni yaratacak ve kendini çağıran prosese ait
olan VAR1'i görmeyecektir. Ana prosese ait değişkene erişmek için betiği
fazladan bir nokta (prosesi çalıştıran komut ile arasında boşluk bulunan)
ile başlatabilirsiniz;

.  ./betik_dosyası


Kolay gelsin, iyi çalışmalar.


2013/7/26 Fevzi DAŞ <[email protected]>

> Merhabalar,
>
> Python kodlarını içeren bir dosyaya shell kodu eklemek mümkün müdür? Yani
> bir dosyada önce python kodu yazıp ardından shell kodları yazmak ve tekrar
> python kodları ile devam etmek istiyorum.
>
> Ve ayrıca shell de oluşturduğum değişkenleri de python içerisinde
> kullanmak istiyorum.
>
> Bunun için nasıl bir yol izlememi tavsiye edersiniz.
>
> İyi çalışmalar ve teşekkürler ...
>
> Fevzi Daş
>
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
>


-- 
Semetey COŞKUN
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap