👨💻Shell Script
Unix işletim sistemlerinin ortak programlama dilidir.
Last updated
Unix işletim sistemlerinin ortak programlama dilidir.
Last updated
© 2024 ~ Yunus Emre Ak ~ yEmreAk
sh
uzantılı dosyalara yazılırlar
Dosyanın ilk satırına shell script olduğunu belli etmesi için #!/bin/bash
yazılır
Terminal üzerinden bash <dosya>
olarak çalıştırılabilirler
Operatör | Açıklama | ||
---|---|---|---|
>
ile yapılan yönlendirme işlemleriecho
tarafından değilshell
tarafından yapılır. Yetki sorunları olursaecho
'ya değilshell
'e yetki verilmelidir.
<metin>
Ekrana basılacak metin
Örn: yemreak
<değişken>
Linux değişkenleri (ortam değişkenleri vs.)
Örn: PYTHONPATH
, HOME
<komut>
Linux komutları
Örn: pwd
<dosya_yolu>
Metnin yazılacağı dosyanın yolu
Örn: yemreak.txt
, ../yemreak.sh
, ~/yemreak.ini
Dosyaya EOT gelene kadar yazma
<sonlandırma_metni>
Bu metin geldiğinde yazma işlemini sonlandırır
Örn: A
olursa YemreAK
yazıldığında sonlanmaz, A
yazıldığında sonlanır.
<dosya_yolu>
Metnin yazılacağı dosyanın yolu
Örn: yemreak.txt
, ../yemreak.sh
, ~/yemreak.ini
Değişkenler kod içerisin $
ön eki ile kullanılır
Değişkenlere atama yapılırken =
sonrası ve öncesinde boşluk bırakılmaz
Boşluk olursa her metni komut gibi işlemeye çalışır ve hata verir
Değişkenlerle aritmatik işlemler let "<işlem>"
komutuyla yapılır
let "myvar = 5"
çalışırken, mayvar = 5
hata verir
Let komutu hakkında daha fazla bilgi için buraya bakabilirsin.
Temel açıklamaya buradan erişebilirsin.
Temel açıklamaya buradan erişebilirsin.
Temel fonksiyon kaynağı için buraya bakabilirsin.
$1
1. parametre
$2
2. parametre
$0
Fonksiyonun ismi
$@
Tüm parametreler (dizi)
Kullanım şekli [ <bayrak> <string> ]
[ -f "$1" ] || {echo "$1 dosyadır"}
Kaynak için buraya bakabilirsin.
Dosya sıkıştırma:
Dizin Sıkıştırma:
Komut | Açıklama |
---|---|
Komut | Açıklama |
---|---|
Bayrak | Açıklama |
---|---|
-
Son çalışan dizine gitme
~
Home dizini
<komut>; <komut>;
Birden fazla komut işleme (birbirlerini beklemez)
<komut> & <komut>
Birden fazla komut işleme (sırayla işler)
<komut> && <komut>
1. komut çalışırsa 2.'yi işleme
`
`
1. olmazsa 2. komutu işleme
`
`
2. komutu ilk komutun çıktısında çalıştırma (pipeline)
>
Yönlendirme (yoksa oluşturur)
>>
Eklemeli yönlendirme (üzerine yazmaz, ekler)
!$
Bir önce kullanılan değişkeni kullanma
!!
Bir önceki komutu kullanma
bash <dosya>
Dosyadaki komutları terminalde gerçekleştirir
bash -c "<komut>"
Verilen komutu terminalde gerçekleştirir
echo "<metin>"
Ekrana metni olduğu gibi basma
echo -e "<metin>"
Ekrana metni formatlı basma (\n \t gibi karakterler çalışır)
echo $<değişken>
Ekrana değişken basma
echo $(<komut>)
Ekrana komut çıktısını basma
echo $(<komut>)' metin '$(<komut>)
Ekrana komut çıktısını ve metni basma
echo "<metin>" > <dosya_yolu>
Verilen metni dosyanın üzerine yazma, yoksa dosyayı oluşturma
echo "<metin>" >> <dosya_yolu>
Verilen metni dosyaya ekleme
sudo bash -c echo "<metin>" > <root_dosya>
Root dosyasının üzerine yazma, yoksa dosyayı oluşturma
<komut> &> /dev/null
Çıktıları gizleme
-f
Dosya kontrolü (File)
-d
Dizin kontrolü (Directory)