sort "$f1"
değerleri için başarısız $f1
olan bu başlangıcı -
ya da burada durumu için sort
ile başlayan bazı +
(adlı bir dosyayı ağır sonuçları olabilir -o/etc/passwd
örneğin).
sort -- "$f1"
(burada --
seçeneklerin sonunu işaret eder) bu sorunların çoğuna hitap eder ancak çağrılan dosya için hala başarısız olur -
(bunun sort
yerine bunun yerine stdin olarak bakılır).
sort < "$f1"
Bu sorun yok mu?
İşte, dosyayı açan kabuk. Ayrıca, dosya açılamıyorsa, potansiyel olarak daha kullanışlı bir hata mesajı alırsınız (örneğin, kabukların çoğu komut dosyasındaki satır numarasını gösterir) ve kullanırsanız hata mesajının tutarlı olacağı anlamına gelir. dosyaları açmak için mümkün olduğunda yönlendirmeleri.
Ve
sort < "$f1" > out
(aksine sort -- "$f1" > out
), "$f1"
açılamazsa out
yaratılmaz / kesilmez, sort
hatta koşmaz.
Olası karışıklığı gidermek için (aşağıdaki yorumları izleyerek), dosyanın kendisi aranabilir olması şartıyla komutun mmap()
dosyaya girmesini veya lseek()
içine girmesini engellemeyin sort
. Tek fark, dosyanın daha önce ve daha sonra muhtemelen farklı bir dosya tanımlayıcısındaki komuttan ziyade, kabuk tarafından dosya tanımlayıcısında 0 açılmasıdır. Komut yine de istediği gibi fd 0 arayabilir. Yani ile karıştırılmamalıdır değildir cat file | cmd
bu zamanın nerede cmd
'ın Stdin / mmaped aranmalıdır olamaz bir borudur.