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
, >file
ve 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 file
ve filedescriptor 3
, filedescriptor 4'ün bağlandığı yere yönlendirilir.
Daha sonra, kalan parametreler arasında A=foo
ve B=bar
içerdiğinden =
komut adı olarak kabul edilmezler: başlatılacak olan sürecin çevre değişkenlerine özel değerler verirler.
Sonra komut gelir cmd
ve 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/tty
root'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.