Yanıtlar:
Kısa cevap: > önce bir dosya adı veya &n(n bir sayıdır) |yazmalı ve ardından başka bir komut çağrısı takip etmelidir.
Ayrıntılar: Kabuk sözdiziminde, bazı komutlara yapılan çağrı birkaç bileşen içerir. Örnek:
A=foo 2>/dev/null B=bar cmd arg1 arg2 >file 3>&4 arg3
Burada, parametreler 2>/dev/null, >fileve 3>&4(Çıkışsız içeren özel parametrelerdir >¹), bunlar io-yönlendirmeleri kurmak için kullanılır ve her yerde komut satırında görünebilir. Filedesciptor 2 yönlendirilir /dev/null, filedescriptor 1(örtük) yönlendirilir fileve filedescriptor 3, filedescriptor 4'ün bağlandığı yere yönlendirilir.
Daha sonra, kalan parametreler arasında A=foove B=bariçerdiğinden =komut adı olarak kabul edilmezler: başlatılacak olan sürecin çevre değişkenlerine özel değerler verirler.
Sonra komut gelir cmdve reel argümanlar: arg1, arg2, arg3.
Pipo |, bir komut çağrısının parçası değil, bu iki yayını birbirine bağlar. Örnek:
CC=gcc make 2>&1 | LESS=--quit-at-eof less
İlk işlem tarafından dosya tanıtıcısı 1'deki çıktı, ikinci işlem tarafından dosya tanıtıcısı 0'daki girdi olarak, bir arabellek gibi davranan bir "boru" yoluyla alınır.
-
1. Aslında, gibi özel karakterler >bazen bir boşluk tarafından izlenir. Buna izin verilmesine rağmen, iki (boşlukla ayrılmış) dizenin tek bir 'varlık' olarak anlaşılması gerekir.
|İse işlemler arasındaki boru veri sağlamak için kullanılır >, bir dosya için bir akışı yeniden yönlendirmek için kullanılır. /dev/ttyroot'un sahip olduğu bir "file" / cihazdır ve izin vermesi sonucunda kabuğunuzun / dev / tty komutunu çalıştırmaya çalıştığı ve buna izin vermediği için izinleri 666 olarak ayarlanmıştır.