Bu değişmez, {fd}
yer tutucu değil. Bunu yapan ve hiçbir şeyden kaynaklanmayan bir komut dosyası var, başka bir yere {fd} atıfta bulunmuyor. Bu geçerli bash mı?
exec {fd}</dev/watchdog
Bu değişmez, {fd}
yer tutucu değil. Bunu yapan ve hiçbir şeyden kaynaklanmayan bir komut dosyası var, başka bir yere {fd} atıfta bulunmuyor. Bu geçerli bash mı?
exec {fd}</dev/watchdog
Yanıtlar:
Bir dosya tanıtıcısı seçmek ve kullanılabilir olmasını ummak yerine:
exec 4< /dev/watchdog # Was 4 in use? Who knows?
bu notasyon, kabuktan şu anda kullanılmayan bir dosya tanımlayıcısını seçmesini, bu tanımlayıcıyı okumak için dosyayı açmasını ve sayıyı verilen değişkene ( fd
) atamasını ister .
$ exec {fd}< /dev/watchdog
$ echo $fd
10
REDIRECTIONS
. Açıkça bir örnek vermedikleri için size gerçekten sıçramaz.
/dev/watchdog
Mac OS X'te de yok; Linux'a özgü bir cihaz.
Form:
{var}<filename
filename
değişkenin içindeki dosya tanımlayıcı numarasını okumak ve saklamak için kabuğu açık dosya haline getirdi var
. {var}
Yönlendirme operatörleri arasında izin verilen boşluk yoktur ve dosya tanımlayıcı numarası eşit veya büyük olacaktır 10
.
Bu özellik orijinal olduğunu ksh
, (2006 yılında versiyon ksh93r itibaren) bash
çok daha sonra bunu kopyalanan bash-4.1-alpha
2010'dan itibaren zsh
de değişiklik daha önce yapılmış bash
dan zsh 4.3.4
2007 yılında.
Bu, Yönlendirmeler hakkındaki Bash el kitabı bölümünde açıklanmıştır .
Bir dosya tanıtıcı numarasından önce gelebilecek her yönlendirme, bunun yerine { varname } biçiminde bir kelime ile yapılabilir . Bu durumda,
>&-
ve dışındaki her yeniden yönlendirme operatörü<&-
için kabuk, 10'dan büyük bir dosya tanıtıcısı tahsis eder ve { varname } öğesine atar . Eğer>&-
veya<&-
önce { varname } ile belirtilmişse, varname'nin değeri kapanacak dosya tanımlayıcısını tanımlar.