Aşağıda, echo $var
atanmış olandan farklı bir değer gösterebilecek bir dizi durum verilmiştir. Bu, atanan değerin "çift tırnaklı", "tek tırnaklı" veya tırnaksız olmasına bakılmaksızın gerçekleşir.
Kabuğun değişkenimi doğru ayarlamasını nasıl sağlayabilirim?
Yıldız işaretleri
Beklenen çıktı /* Foobar is free software */
, ancak bunun yerine bir dosya adı listesi alıyorum:
$ var="/* Foobar is free software */"
$ echo $var
/bin /boot /dev /etc /home /initrd.img /lib /lib64 /media /mnt /opt /proc ...
Köşeli parantez
Beklenen değer [a-z]
, ancak bazen bunun yerine tek bir harf alıyorum!
$ var=[a-z]
$ echo $var
c
Satır beslemeleri (yeni satırlar)
Beklenen değer, ayrı satırlardan oluşan bir listedir, ancak bunun yerine tüm değerler tek satırdadır!
$ cat file
foo
bar
baz
$ var=$(cat file)
$ echo $var
foo bar baz
Birden çok boşluk
Dikkatle hizalanmış bir tablo başlığı bekliyordum, ancak bunun yerine birden çok boşluk ya kayboluyor ya da tek bir boşluk olacak!
$ var=" title | count"
$ echo $var
title | count
Sekmeler
Sekmeyle ayrılmış iki değer bekliyordum, bunun yerine boşlukla ayrılmış iki değer alıyorum!
$ var=$'key\tvalue'
$ echo $var
key value
var=$(cat file)
iyi, amaecho "$var"
gerekli.