> For the complete documentation index, see [llms.txt](https://docs.liman.dev/eklenti-gelistirme/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.liman.dev/eklenti-gelistirme/gelistirme/sunucuda-betik-calistirma.md).

# Sunucuda Betik Çalıştırmak

Sunucu üzerinde Python, Bash ve Powershell betiklerini çalıştırma yöntemleri.

## runScript fonksiyonu

Sunucumuzda betik çalıştırmak için runScript yardımcı fonksiyonumuzu kullanmaktayız. Bu fonksiyon eklentinin eklendiği sistem üzerinde Python, Bash ve Powershell betiklerini çalıştırmamızı sağlamaktadır.

### Gerekli Ortamı Hazırlama

runScript fonksiyonunun çalışabilmesi için eklenti dizininiz altında bir `scripts` klasörü oluşturmamız ve betikleri bu klasörün içerisine yüklememiz gerekmektedir.&#x20;

![Betiklerin Bulunduğu Klasör](https://417706327-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MfqQ50ZXXmoDpZL1Ih7%2F-Mg4ZPDs9aD7j6p8F8oi%2F-Mg4cMu4E6zfld5zl4g_%2Fimage.png?alt=media\&token=0b41666e-4e46-43e5-9333-1c03cf51f66d)

### Kullanım Örneği

runScript fonksiyonunu kullanabilmek için bir controller oluşturmamız gerekmektedir. Bu controlleri doğru şekilde oluşturup rota tanımlamasını doğru şekilde yaptığımızı varsayalım.

```php
public function run()
{
    // runScript function
    // 1st parameter: filename under scripts folder STRING
    // 2nd parameter: parameters STRING
    // 3nd parameter: run as sudo BOOL
    $script = runScript("example.py", "", false);
    return respond($script, 200);
}
```

| Parametre         | Açıklama                                   | Veri Tipi |
| ----------------- | ------------------------------------------ | --------- |
| Birinci Parametre | scripts klasörü altındaki dosya adını alır | String    |
| İkinci Parametre  | scripte göndereceğimiz argümanlar          | String    |
| Üçüncü Parametre  | sudo olarak mı çalıştırılmalıdır?          | Boolean   |

#### Örnek Python Kullanımı

Controllerda tanımlamalarımızı yapıp ardından JavaScript tarafında request yardımcı fonksiyonumuz ile çağrımızı yaptığımızda betik çıktımızı alabiliriz.&#x20;

```python
#!/usr/bin/python3
print("Hello world!")
```

Bu Python betiğini yukarıdaki şekilde controller kısmında çağırıp önyüz çağrısı sonucu şu tarz bir çıktı almaktayız.

![Betik Çıktısı](https://417706327-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MfqQ50ZXXmoDpZL1Ih7%2F-Mg4ZPDs9aD7j6p8F8oi%2F-Mg4gr34mdqsUubp0ZjQ%2Fimage.png?alt=media\&token=f38820f7-cf62-40dd-8d00-73415c1d184f)

**Bu örneği PHP 7.3 + OOP Training eklenti şablonunda bulabilirsiniz.**
