[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-programlama
Subject:    [Linux-programlama] Re: =?iso-8859-9?q?Python_dosyas=FDna_shell_kodu_eklemek?=
From:       Semetey_Coşkun <semeteycoskun () gmail ! com>
Date:       2013-07-26 16:37:52
Message-ID: CAM=Yqn1vTPA1VwBgDfMpR45ojVapnp7cRf7PQEGOsQY=SvavfA () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


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Ş <fevzidas@gmail.com>

> 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
> Linux-programlama@liste.linux.org.tr
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
>


-- 
Semetey COŞKUN

[Attachment #5 (text/html)]

<div dir="ltr">Merhabalar,<div><br></div><div>betik dillerinde yorumlayıcı genelde \
dosya başında belirtiliyor; \
</div><div><br></div><div>#!/bin/bash</div><div>#!/path/to/python</div><div><br></div><div>gibi... \
Bu şekilde belirtmeden de yorumlayıcı ismi ile ilgili dosyayı çalıştırmak da yeterli \
olabiliyor;</div> <div><br></div><div>python betik_dosyası</div><div>bash \
betik_dosyası</div><div><br></div><div>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.</div> <div><br></div><div>Belki aralarında C &amp;&amp; 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 &quot;extern C&quot;  gibi \
bir belirteç ile de yapılaiblirdi. Bu tarz bir ilişkilendirme var mı aralarında emin \
değilim açıkcası...</div> <div><br></div><div>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);</div> \
<div><br></div><div><a \
href="http://docs.python.org/2/using/cmdline.html">http://docs.python.org/2/using/cmdline.html</a><br></div><div><a \
href="http://genepath.med.harvard.edu/mw/Bash:HOW_TO:_Set_an_environment_variable_in_t \
he_bash_shell">http://genepath.med.harvard.edu/mw/Bash:HOW_TO:_Set_an_environment_variable_in_the_bash_shell</a><br>
 </div><div><br></div><div>Yani kısacası Python için <b>os.environ</b> bash için ise \
<b>export</b> vs komutları. </div><div><br></div><div><br></div><div><b>Anekdot:</b> \
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.</div> \
<div><br></div><div>./betik_dosyası</div><div><br></div><div>-&gt; Bu şekilde dosyayı \
çalıştıran ortamda VAR1=&quot;var1 value&quot; şeklinde bir anahtar/değer ikilisini \
(ya da değişken) olduğunu düşünürsek, betik dosyası içerisinde;</div> \
<div><br></div><div>VAR1=&quot;new var1 value&quot;</div><div><br></div><div>tanımı, \
yeni bir VAR1 değişkeni yaratacak ve kendini çağıran prosese ait olan VAR1&#39;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;</div> \
<div><br></div><div>.  ./betik_dosyası</div><div><br></div><div><br></div><div>Kolay \
gelsin, iyi çalışmalar.</div></div><div class="gmail_extra"><br><br><div \
class="gmail_quote">2013/7/26 Fevzi DAŞ <span dir="ltr">&lt;<a \
href="mailto:fevzidas@gmail.com" \
target="_blank">fevzidas@gmail.com</a>&gt;</span><br> <blockquote class="gmail_quote" \
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div \
dir="ltr">Merhabalar,<div><br></div><div>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. </div>


<div><br></div><div>Ve ayrıca shell de oluşturduğum değişkenleri de python içerisinde \
kullanmak istiyorum. </div><div><br></div><div>Bunun için nasıl bir yol izlememi \
tavsiye edersiniz. </div><div><br></div><div>İyi çalışmalar ve teşekkürler ...</div> \
<span class="HOEnZb"><font color="#888888">

<div><br clear="all"><div>Fevzi Daş</div>
</div></font></span></div>
<br>_______________________________________________<br>
Linux-programlama mailing list<br>
<a href="mailto:Linux-programlama@liste.linux.org.tr">Linux-programlama@liste.linux.org.tr</a><br>
 <a href="https://liste.linux.org.tr/mailman/listinfo/linux-programlama" \
target="_blank">https://liste.linux.org.tr/mailman/listinfo/linux-programlama</a><br> \
Liste kurallari: <a href="http://liste.linux.org.tr/kurallar.php" \
target="_blank">http://liste.linux.org.tr/kurallar.php</a><br> \
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Semetey COŞKUN \
</div>



_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic