2014-10-28 25 views
5

Ben adlandırılmış dosya tanıtıcı {out} yarattık:Bash'de adlandırılmış bir dosya tanıtıcısına nasıl yazılır?

 
$ echo >&{out} 
$ find . -name {out} 
./{out} 

The:

 
$ exec {out}>out 

Ama yeni bir dosya dosya tanımlayıcısı adıyla oluşturulan alır isimli dosya tanımlayıcı yazmaya çalıştığınızda Bash manual diyor ki:

yerine inci bir kelime öncesinde olabilir bir dosya tanıtıcı numarasına öncesinde edilebilir Her yönlendirme e form {varname}.

Ben bir rakam ile bunu yaparsanız bunun yerine iyi çalışır:

 
$ exec 3>out 
$ echo test >&3 
$ cat out 
test 

Nasıl adlandırılmış dosya tanımlayıcı ile aynı şeyi?

cevap

7

Parantez içindeki dize, yalnızca kabuğun sizin için ayarlayacağı bir değişkenin adıdır; değeri, kabuğun ayırdığı dosya tanıtıcısıdır. Diş telleri ismin bir parçası değildir. Bunu kullanmak için, değişkeni uygun bağlamda genişletmeniz yeterlidir. Örnekte

$ exec {out}>out 
$ echo foobar >&$out 
$ cat out 
foobar 

, dosya {out}

echo >&{out} 

tarafından yaratıldı değil kimin yönlendirme değişken out tahsis dosya tanıtıcı saklanan dosyayı out oluşturulan ilk exec. Eğer exec {out}>out yaparsanız

1

echo test >&${out}

ardından $out size fd numarası verir.

İlgili konular