OnWorks Linux ve Windows Çevrimiçi İş İstasyonları

Logo

İş İstasyonları için Çevrimiçi Ücretsiz Barındırma

<Önceki | İçerik | Sonraki>

Değişkenlere ve Sabitlere Değer Atama

Genişleme bilgimizin gerçekten işe yaramaya başladığı yer burasıdır. Gördüğümüz gibi, değişkenlere şu şekilde değerler atanır:

değişken=değer

nerede değişken değişkenin adıdır ve değer bir dizedir. Diğer bazı programlama dillerinden farklı olarak, kabuk, bir değişkene atanan verinin türüyle ilgilenmez; hepsini dizeler olarak ele alır. Kabuğu kullanarak atamayı tam sayılarla sınırlamaya zorlayabilirsiniz. bildirmek ile komut -i ancak, değişkenleri salt okunur olarak ayarlamak gibi, bu nadiren yapılır.

Bir atamada değişken adı, eşittir işareti ve değer arasında boşluk olmaması gerektiğini unutmayın. Peki değer nelerden oluşabilir? Bir dizgeye genişletebileceğimiz herhangi bir şey:


a=z

b="bir dize"

c="a dizesi ve $b"


d=$(ls -l foo.txt) e=$((5 * 7)) f="\t\ta string\n"

# "z" dizesini a değişkenine atayın.

# Gömülü boşluklar tırnak içinde olmalıdır.

# Değişkenler gibi diğer açılımlar

# ödeve genişletildi.

# Bir komutun sonuçları.

# Aritmetik açılım.

# Sekmeler ve yeni satırlar gibi kaçış dizileri.

a=z

b="bir dize"

c="a dizesi ve $b"


d=$(ls -l foo.txt) e=$((5 * 7)) f="\t\ta string\n"


görüntü

Tek bir satırda birden fazla değişken ataması yapılabilir:



a=5 b="bir dize"

a=5 b="bir dize"


Genişletme sırasında, değişken adları isteğe bağlı kaşlı ayraçlar "{}" ile çevrelenebilir. Bu, bir değişken adının çevresi nedeniyle belirsiz hale geldiği durumlarda kullanışlıdır.


Metin. Burada bir dosyanın adını değiştirmeye çalışıyoruz. dosyam için dosyam1, bir değişken kullanarak:



[ben@linuxbox ~]$ dosya adı = "dosyam" [ben@linuxbox ~]$ $dosya adına dokunun [ben@linuxbox ~]$ mv $dosyaadı $dosyaadı1

mv: "dosyam"dan sonra hedef dosya işleneni eksik Daha fazla bilgi için "mv --help"i deneyin.

[ben@linuxbox ~]$ dosya adı = "dosyam" [ben@linuxbox ~]$ $dosya adına dokunun [ben@linuxbox ~]$ mv $dosyaadı $dosyaadı1

mv: "dosyam"dan sonra hedef dosya işleneni eksik Daha fazla bilgi için "mv --help"i deneyin.


Bu girişim başarısız olur çünkü kabuk, ikinci argümanı yorumlar. mv yeni (ve boş) bir değişken olarak komut. Sorun şu şekilde aşılabilir:



[ben@linuxbox ~]$ mv $dosyaadı ${dosyaadı}1

[ben@linuxbox ~]$ mv $dosyaadı ${dosyaadı}1


Çevreleyen parantezleri ekleyerek, kabuk artık takip edenleri yorumlamaz. 1 değişken adının bir parçası olarak.

Bu fırsatı, raporumuza, raporun oluşturulduğu tarih ve saat ve oluşturucunun kullanıcı adı gibi bazı verileri eklemek için kullanacağız:



#! / Bin / bash

# Sistem bilgi sayfasının çıktısını almak için program TITLE="$HOSTNAME İçin Sistem Bilgisi Raporu"

CURRENT_TIME=$(tarih +"%x %r %Z")

TIMESTAMP="$CURRENT_TIME, $USER tarafından oluşturuldu"


Eko "

$TITLE

$TITLE

$TIMESTAMP

"

#! / Bin / bash

# Sistem bilgi sayfasının çıktısını almak için program TITLE="$HOSTNAME İçin Sistem Bilgisi Raporu"

CURRENT_TIME=$(tarih +"%x %r %Z")

TIMESTAMP="$CURRENT_TIME, $USER tarafından oluşturuldu"


Eko "

$TITLE

$TITLE

$TIMESTAMP

"


OnWorks'te En İyi OS Bulut Bilişimi: