Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy
počítačové znalosti >> Systémy >> unix >> .

Ako nájsť časový rozdiel v Unix Script

Ak potrebujete nájsť rozdiel medzi dvoma časmi , či už sa líši len o niekoľko sekúnd , alebo rokov , môžete to urobiť v GNU verzie Unixu pomocou príkazu " date " . Avšak, tento postup nie je intuitívne , ako príkaz dátum neposkytuje priamo vlajku alebo argumenty pre tento postup . Okrem toho , rôzne verzie príkazu date existujú v Unixu . Všimnite si , že to , čo funguje v GNU verzii príkazu date nebude fungovať s verziou BSD . Unix Epoch

Kľúčom k riešeniu tohto problému je pochopenie toho , ako počítač vlastne sleduje čas . Unix počítač ukladá všetky časy ako počet sekúnd , ktoré uplynuli od Unix Epoch . Unix Epoch je polnoc 1. januára 1970.
Získanie sekúnd od Unix Epoch

môžete získať počet sekúnd od Unix Epoch pre daný dátum pomocou kombinácie " + % s " vlajkou a - príkaz " date " . Zadajte nasledujúci príkaz do shellu , aby sa počet sekúnd od Unix Epoch k 11.03.2011 :

dátum - dátum 2011-03-11 + % s

Výsledkom bude : 1299823200 . Môžete použiť ľubovoľný dátum , formát času , ktorý môžete analyzovať pomocou príkazu " dátum " v tomto skriptu . Môžete zadať " dátum man " do vášho shellu prečítať o všetkých formátov platný dátum .
Riešenie

Ako si môžete vziať nejaký daný deň , alebo čas v kompatibilnom formáte Unix a previesť ju do sekúnd pred alebo od Unix Epoch , môžete nájsť rozdiel medzi dvoma časmi odpočítaním výsledky dvoch z týchto príkazov .

Zadajte nasledujúce príkazy do svojej shell :

d1 = ` date - dátum 2011-03-11 + % s `

d2 = ` date - dátum 2010-05-12 + % s `

echo " $ ( ( (d1 - d2) ) ) sekúnd rozdiel "

V prvých dvoch riadkoch , ` znak nie je citácie značka . Jedná sa o back - tick . Môžete nájsť tento znak naľavo od klávesy " 1 " na štandardnú americkú klávesnicu .

Výstup by mal byť rozdiel medzi týmito dvoma časmi v sekundách . Ak potrebujete , môžete previesť to do minútach , hodinách , dňoch , a tak ďalej vydelením počtu sekúnd za minútu , minúty za hodinu alebo hodiny v jeden deň .
Skript

Ako by to byť na obtiaž písať z týchto troch dlhých príkazov zakaždým , mali by ste byť vnorený do skriptu . Otvorte svoj ​​obľúbený textový editor a vložte nasledujúce : !

# /Usr /bin /env bash

d1 = ` date - Date $ 1 + % s `

d2 = ` date - dátum 2dolar + % s `

echo " $ ( ( (d1 - d2) ) ) sekúnd rozdiel "

Tým sa zmení niekoľko vecí . Horný riadok vám aktuálne shell vedieť , že ste to napísať skript používať jazyk " bash " shell . Ako nahradiť dáta v oboch Dátum príkazy s " $ 1 " a " $ 2 " , môžete prechádzať nové termíny do skriptu zakaždým , keď ju spustiť . Opäť , v prvých dvoch riadkoch , môžete použiť zadný - Tick ` , ani jeden citát .

Uložte skript s názvom " timediff.sh " a spustiť príkaz " chmod + x timediff.sh " v shellu nechať Unix vedieť , že má oprávnenie na spustenie to ako scenár

Akonáhle to urobíte , môžete nájsť rozdiel medzi dvoma dátumami a časmi zadaním : .

. /timediff.sh 2010-9-13 1981-1-14

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené