Bash time, komut satırlarını ayrıştırırken yerleşik olanı özel bir durum olarak ele alır .
Bash man sayfasında okunabileceği gibi, yazılan satır önce bir listeye ayrılır:
pipeline ; pipeline
burada bir boru hattı:
[time [-p]] [ ! ] command [ [|⎪|&] command2 ... ]
veya bizim durumumuzda, basitçe:
time command
yani zaman varsa, komut da mevcut olmalıdır .
[ timeBir satırsonu gelmesine izin veren özel bir durum var , ancak bu burada geçerli değil]
Yani, bizim durumumuzda, var:
time;date
iki boru hattına ayrılmak:
1. time
2. date
ve boru hattı 1 iyi bir şekilde oluşturulmamıştır, çünkü timekomut olmadan. Dolayısıyla hata.
Komut satırının timeburada da çalışmadığını unutmayın:
$ /usr/bin/time;date
Usage: /usr/bin/time [-apvV] [-f format] [-o file] [--append] [--verbose]
bash bunu beklendiği gibi 2 boru hattına ayrıştırır:
1. /usr/bin/time
2. date
ve /usr/bin/timesonra hiçbir argüman olmadan çalışmayı reddediyor. Bunun /usr/bin/timebash hatasından kaynaklanan bir hata olduğunu unutmayın .
Arka kene çalışmasının nedeni, arka kene time, boru hattı içinde özel bir eleman olarak yorumlanmasının durmasıdır.
yani arka kene ile:
`time`;date
iki boru hattı olarak ayrıştırılır:
1. `time`
2. date
Bir boru hattının, bizim durumumuzda:
[time] command
ve başlangıçta sorun, timekomut verilmemişti, ki buna izin verilmiyordu. Ama şimdi sadece şu komuta sahibiz:
`time`
öncekiler olmadan, timegeri keneler timeönceki sözcük olarak değil, komut olarak yorumlandığı anlamına gelir .
Bu yüzden bash yapısını timehiçbir argüman olmadan çalıştırır , ki bu kabul edilir. Hiçbir çıktı üretmez ve hata görmüyoruz.
Bunu not et:
`time`
aslında ishal sonucu içinde timeyerleşik, yani ne olursa olsun çalışır timeyerleşik stdout'ta üretir. Ancak timekendi başına stdout'a bir şey yazmadığı için işe yarıyor gibi görünüyor.
Son olarak, bunun işe yaradığı belirtildi:
time ; ; date
ki ne yazık ki açıklayamam :)
time;datevs yatıyordate;time. Bu boru hattıbashvetimeçıktı ile üretilen son karakter ile ilgili bir sorun gibi görünüyor . Farklı terminal öykünücülerinde test edilen sonuçlar şunlardır: - [Bash] $ tarih; saat # [Tamam] $ saat; tarih # [ NotOK ] bash: beklenmedik jetonun yanında sözdizimi hatası `tarih '$ saat # yalnızca hata görünmüyor herhangi bir tarihin sonucu. - [Csh] $ tarih; saat # [Tamam] $ saat; tarih # [Tamam] - [Tcsh] $ tarih; saat # [Tamam] $ saat; tarih # [Tamam] - [Ksh] $ tarih; saat # [ Tamam] $ zaman; tarih # [Tamam]