İşte Belgeler
Metnimizin çıktısını almak için iki farklı yönteme baktık; her ikisi de kaçırmak kom-
rica ederim. adı verilen üçüncü bir yol daha vardır. işte belge or işte senaryo. Buradaki belge, betiğimize bir metin gövdesi yerleştirdiğimiz ve bunu bir komutun standart girişine beslediğimiz ek bir G/Ç yeniden yönlendirme biçimidir. Bu şekilde çalışır:
komuta << simge
metin
simge
nerede komuta standart girişi kabul eden komutun adıdır ve simge gömülü metnin sonunu belirtmek için kullanılan bir dizedir. Komut dosyamızı buradaki belgeyi kullanacak şekilde değiştireceğiz:
#! / 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"
kedi << _EOF_
$TITLE
$TITLE
$TIMESTAMP
_EOF_
#! / 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"
kedi << _EOF_
$TITLE
$TITLE
$TIMESTAMP
_EOF_
Kullanmak yerine kaçırmak, betiğimiz artık şunu kullanıyor kedi ve burada bir belge. Dize _EOF_ (ortak bir kural olan "Dosya Sonu" anlamına gelir) belirteç olarak seçilmiştir ve gömülü metnin sonunu işaret eder. Belirtecin tek başına görünmesi gerektiğini ve satırın sonunda boşluk bulunmaması gerektiğini unutmayın.
Peki burada belge kullanmanın avantajı nedir? Çoğunlukla aynı kaçırmakancak varsayılan olarak buradaki belgelerdeki tek ve çift tırnaklar kabuk açısından özel anlamlarını kaybeder. İşte bir komut satırı örneği:
[ben@linuxbox ~]$ foo = bazı metinler
[ben@linuxbox ~]$ kedi << _EOF_
> $ foo
[ben@linuxbox ~]$ foo = bazı metinler
[ben@linuxbox ~]$ kedi << _EOF_
> $ foo
> "$foo"
> '$foo'
> \$foo
> _EOF_ biraz metin "biraz metin" 'biraz metin'
$ foo
> "$foo"
> '$foo'
> \$foo
> _EOF_ biraz metin "biraz metin" 'biraz metin'
$ foo
Gördüğümüz gibi kabuk tırnak işaretlerine dikkat etmiyor. Onlara sıradan karakterlermiş gibi davranır. Bu, alıntıları buradaki bir belgeye serbestçe yerleştirmemize olanak tanır. Bu, rapor programımız için kullanışlı olabilir.
Burada belgeler standart girişi kabul eden herhangi bir komutla kullanılabilir. Bu örnekte, bir dizi komutu bilgisayara iletmek için buradaki belgeyi kullanıyoruz. ftp Uzak bir FTP sunucusundan bir dosya almak için program:
#! / Bin / bash
# FTP yoluyla bir dosyayı almak için komut dosyası FTP_SERVER=ftp.nl.debian.org
FTP_PATH=/debian/dists/lenny/main/installer-i386/current/images/cdrom REMOTE_FILE=debian-cd_info.tar.gz
ftp -n << _EOF_ $FTP_SERVER'ı aç
kullanıcı anonim me@linuxbox cd $FTP_PATH
esrar
$REMOTE_FILE alın hoşçakalın
_EOF_
ls -l $REMOTE_FILE
#! / Bin / bash
# FTP yoluyla bir dosyayı almak için komut dosyası FTP_SERVER=ftp.nl.debian.org
FTP_PATH=/debian/dists/lenny/main/installer-i386/current/images/cdrom REMOTE_FILE=debian-cd_info.tar.gz
ftp -n << _EOF_ $FTP_SERVER'ı aç
kullanıcı anonim me@linuxbox cd $FTP_PATH
esrar
$REMOTE_FILE alın hoşçakalın
_EOF_
ls -l $REMOTE_FILE
Yönlendirme operatörünü "<<" yerine "<<-" olarak değiştirirsek, kabuk buradaki belgedeki baştaki sekme karakterlerini yok sayacaktır. Bu, burada belgenin girintili hale getirilmesine olanak tanır ve bu da okunabilirliği artırabilir:
#! / Bin / bash
# FTP yoluyla bir dosyayı almak için komut dosyası FTP_SERVER=ftp.nl.debian.org
#! / Bin / bash
# FTP yoluyla bir dosyayı almak için komut dosyası FTP_SERVER=ftp.nl.debian.org
FTP_PATH=/debian/dists/lenny/main/installer-i386/current/images/cdrom REMOTE_FILE=debian-cd_info.tar.gz
ftp -n <<- _EOF_ $FTP_SERVER'ı aç
kullanıcı anonim me@linuxbox cd $FTP_PATH
esrar
$REMOTE_FILE alın hoşçakalın
_EOF_
ls -l $REMOTE_FILE
FTP_PATH=/debian/dists/lenny/main/installer-i386/current/images/cdrom REMOTE_FILE=debian-cd_info.tar.gz
ftp -n <<- _EOF_ $FTP_SERVER'ı aç
kullanıcı anonim me@linuxbox cd $FTP_PATH
esrar
$REMOTE_FILE alın hoşçakalın
_EOF_
ls -l $REMOTE_FILE
 
 
 Dökümanlar
 Dökümanlar