.bat uzantısı linuxta karşılığı nedir?

Başlatan halimasa, 03 Haziran 2020 - 14:44:38

« önceki - sonraki »

0 Üyeler ve 3 Ziyaretçi konuyu incelemekte.

halimasa

Selamlar windowsta kullandığım küçük bir .bat uzantılı bir uygulamam vardı, bat dosyasının içindeki komutları başarıyla uç birimde çalıştırabildim. Bunu linuxta nasıl yapabilirim. şurada konuyla ilgili bir başlık gördüm. https://forum.ubuntu-tr.net/index.php?topic=57321 burada sh olarak kaydedin diyordu, yaptım ancak .sh dosyasına tıkladığımda metin editörü açıldı başka programla aç dediğimde ise metin dosyaları çıktı önerilen program uç birim çıkmadı.

bu kod parçacığını daha kolay nasıl çalıştırabilirim. .desktop uzantısı yaptığımda da sonuç değişmedi.

mhmtkrktr

.bat 'ın karşılığı .sh dir. (mimetype den dolayı linux da uzantı belirtme şartı yok)

Çalıştırmak için bazı şartları tamamlanmış olmalı.
1* yorumlayıcı tanımlanmalı.
  Betiğin ilk satırına hangi kabukta çalışacağını söylemelisin
  örn: #!/usr/bin/bash veya #!/bin/zsh
  şu komut sana hangi kabuğu kullandığını söyler
echo $BASH

2* Betik en azından user için çalıştırılabilir olmalı
  stat -c '%A %n' /dosya_yolu/dosya.sh
  r = okunabilir
  w= yazılabilir
  x = çalıştırılabilir

ilk 4 ---- = user (u)
sonraki 3 --- = grup (g)
son 3 --- = sahibi  (o)

  user ve grup için çalıştırma yetkisi
chmod ug+x /dosya_yolu/dosya.sh
# veya bunun sayısal karşılığı
chmod 754 /dosya_yolu/dosya.sh


  herkez çalıştırabilsin dersen
chmod a+x /dosya_yolu/dosya.sh
# veya bunun sayısal karşılığı
chmod 755 /dosya_yolu/dosya.sh


3* kabuk dosyası sadece yönlendirildiği kabuk üzerinde çalışır.
a = terminalde
cd /dosya_yolu
bash dosya.sh
# dosya yorumlanmamışsa bash -c


cd /dosya_yolu
source dosya.sh
# veya . (nokta) source anlamına gelir
./dosya.sh


/dosya_yolu/dosya.sh
#veya
bash /dosya_yolu/dosya.sh
# veya da
source /dosya_yolu/dosya.sh


b = desktop dosyası gibi dışardan yönlendirme için
[Desktop Entry]
Type=Aplication
Exec=bash -c '/dosya_yolu/dosya.sh'


bash 'ı kullandığın kabuk için değiştirebilirsin örn: sh zsh ksh vb.

halimasa

Alıntı yapılan: mhmtkrktr - 03 Haziran 2020 - 16:29:24
.bat 'ın karşılığı .sh dir. (mimetype den dolayı linux da uzantı belirtme şartı yok)

Çalıştırmak için bazı şartları tamamlanmış olmalı.
1* yorumlayıcı tanımlanmalı.
  Betiğin ilk satırına hangi kabukta çalışacağını söylemelisin
  örn: #!/usr/bin/bash veya #!/bin/zsh
  şu komut sana hangi kabuğu kullandığını söyler
echo $BASH

2* Betik en azından user için çalıştırılabilir olmalı
  stat -c '%A %n' /dosya_yolu/dosya.sh
  r = okunabilir
  w= yazılabilir
  x = çalıştırılabilir

ilk 4 ---- = user (u)
sonraki 3 --- = grup (g)
son 3 --- = sahibi  (o)

  user ve grup için çalıştırma yetkisi
chmod ug+x /dosya_yolu/dosya.sh
# veya bunun sayısal karşılığı
chmod 754 /dosya_yolu/dosya.sh


  * herkes çalıştırabilsin dersen
chmod a+x /dosya_yolu/dosya.sh
# veya bunun sayısal karşılığı
chmod 755 /dosya_yolu/dosya.sh


3* kabuk dosyası sadece yönlendirildiği kabuk üzerinde çalışır.
a = terminalde
cd /dosya_yolu
bash dosya.sh
# dosya yorumlanmamışsa bash -c


cd /dosya_yolu
source dosya.sh
# veya . (nokta) source anlamına gelir
./dosya.sh


/dosya_yolu/dosya.sh
#veya
bash /dosya_yolu/dosya.sh
# veya da
source /dosya_yolu/dosya.sh


b = desktop dosyası gibi dışardan yönlendirme için
[Desktop Entry]
Type=Aplication
Exec=bash -c '/dosya_yolu/dosya.sh'


bash 'ı kullandığın kabuk için değiştirebilirsin örn: sh zsh ksh vb.

İyi insan öncelikle çok selam, benim gibi ubuntuya (3 günlük) yeni başlayan bir kişi için yazdıkların gözümü korkuttu. 1 sene sadece kurulum için bekledim, mor ekranda takılıp kalıyordu geçen hafta cumartesi günü sanırım bu sorunumu halledebilmiştim nomodeset ile :) ama yinede deneyeceğim.

mhmtkrktr

Ben kaynak olsun diye biraz ayrıntıya girdim. Gözünün korkmasına gerek yok. Şöyle basitleştireyim
terminalden;
chmod a+x /dosya_yolu/dosya.sh
bash -c '/dosya_yolu/dosya.sh'


Bu kadar  ;)

alquirel

Alıntı yapılan: mhmtkrktr - 03 Haziran 2020 - 16:29:24
...
ilk 4 ---- = user (u)
sonraki 3 --- = grup (g)
son 3 --- = sahibi  (o)
...

Gözden kaçan küçük bir noktayı affınıza sığınarak düzeltmek isterim.
İlk hane dosya tipini belirtir. (d ise directory, yani dizin olduğunu gösterir, herhangi bir değer yoksa yani - ise normal dosya olduğunu gösterir.)
User izinlerine yine 3 hane kalır.
Son 3 hane de sahibi (yani owner) değil de diğerleri (yani others) için olan izinleri gösterir.

mhmtkrktr

[mention=653473]@alquirel[/mention] ne demek ;-)

İlk dördü kafa daha da karışmasın diye ayırmadım.
d= directory
l = link vs.

owner > others ise düpedüz paslanmaya işaret sanırım  :D
Düzeltme için teşekkürler.

halimasa

Alıntı yapılan: mhmtkrktr - 03 Haziran 2020 - 16:47:04
Ben kaynak olsun diye biraz ayrıntıya girdim. Gözünün korkmasına gerek yok. Şöyle basitleştireyim
terminalden;
chmod a+x /dosya_yolu/dosya.sh
bash -c '/dosya_yolu/dosya.sh'


Bu kadar  ;)

Bu haliyle daha basit olmuş @mhmtkrktr çok teşekkür ederim, deneyip yorumu editleyeceğim. Çözülmüş olursa konumu işaretlerim.