[Megoldva] bash parancsban megadott date paraméter

Szeretném, ha pl. a parancssorban kiadott "mail -s 'date %T'...." parancsban a dátum értéke kiértékelődjön a levél tárgyában.
Régebben sikerült, de nem jövök rá a szintaxisra...
Aposztrof/idézőjel/...?

Hozzászólások


echo "Tárgy a dátum" | mail -s "`date +%T`" kaltsi

nekem megy :)

Mivel ezt a problémát röviden megoldották, hasonló kérdésemet itt teszem fel.
Ubuntu 8.04 LTS szerverről van szó. Semmilyen GUI, de még X.org sincs rajta.
A date parancs magyar formátumban adja vissza az eredményt.
Viszont egy cron-ból indított szkriptben már angol/amerikai dátum és idő formátumban kapom az eredményt. Ugyanazt a szkriptet kézzel indítva is magyar formátum az eredmény.
Mondjuk annyira nem vészes, de érdekelne, hogy lehet beállítani, hogy a cron által futtatott szkript is magyar formátumot eredményezzen. Valami globális beállításra gondolok, nem a date kimenetére kényszerített formázásra.
Tudom, hogy van itt akinek ez csípőből megy, kérem írja le, hol és mit kell beállítani.

--
не закурить! (Ne gyújts rá!) не куриться! (Ne dohányozz! Ne füstölögj!)

Köszönöm!
Most tesztelés alatt van a szkript, úgyhogy 5 percenként fut és a futás eredményéről levelet is küld néhány címre.
Már be is tettem a javasolt sort!

szerk: Működik. Pont úgy, ahogy szeretném. Köszi.
--
не закурить! (Ne gyújts rá!) не куриться! (Ne dohányozz! Ne füstölögj!)

Ezt is kipróbáltam.
Kicseréltem az export LANG=hu_HU.UTF8 sorokat export LC_TIME=hu_HU.UTF8 sorra.
Ugyanúgy magyar formátumot eredményez a dátumoknál.
Neked is köszönöm.
Ha azt is megtudnád mondani, hogy mi a különbség a kettő között, azért tényleg hálás lennék.
--
не закурить! (Ne gyújts rá!) не куриться! (Ne dohányozz! Ne füstölögj!)

Az a különbség, hogy van egy halom nyelvi beállítási lehetőség a linux alapú disztribúciókban, az én beállításom egyben írja át az összeset, a másik csak a dátumra hat. Egyikkel minden magyar lesz, másikkal beállíthatsz pl. angol man lapokat magyar dátummal meg sok mást ist.

Kinek a pap, kinek a papné, én nem szeretném, hogy a programok különböző módon működjenek nyelvi szempontból.

Ha nem akarsz keveredést, akkor a (régebbi, logikusabb) LANG helyett használd az LC_ALL -t, ugyanis kb az a sorrend, hogy
LC_ALL
LC_xxx
LANG

- azaz ha valahol valaki LC_xxx -et (LC_TIME, LC_COLLATE, LC_NUMERIC, stb) állít, akkor bizony az lesz érvényben, és nem a LANG. Viszont az LC_ALL mindent visz, az az adu ász. (Ja, amúgy ez saját szkriptben akkor szopás, ha valaki *más* futtatja a te sajátr szkriptede, és neki van LC_xxx állítva.)

Sajnos nem. Az LC_ALL pont a LANG-ot nem viszi. Mostanaban egyre kevesebbet hasznaljak egyebkent a LC_ALL-t, mert az ujabb disztrokban reszben a LANG is megteszi ugyanezt (vegigallitgatja a LC_* beallitasokat).
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Nem, a lang eleg, az vegigallit mindent, ha normalis rendszered van. De, egyebkent probald ki oket egyenkent, es ra fogsz jonni. Hint: az egyes parancsok utan add ki a locale parancsot.

Kulonben sem kell mindketto. Vagy egyik, vagy masik, de a ketto elvben overkill, ha nem hasznalsz olyan programot, ami nem figyeli explicite a LANG erteket (altalaban inkabb az LC_MESSAGES, LC_TIME, stb. erteket szokas figyelni, tehat specifikusan azt a reszt, ami teged erdekel).
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Jelenleg az említett mentést végző szkriptben próbáltam. A LANG és az LC_TIME külön-külön mindkettő megfelelő eredményt adott, illetve a fenti kettős az LC_ALL és a LANG együtt is.
Marad akkor egyedül a LANG. # a többi meg kommentben, hogy emlékezzek rá, hogy olyan is van! Egyszer még jól jöhet. :-{)E

Mindenkinek köszönöm, hogy elmondta amit jónak lát a témában!
--
не закурить! (Ne gyújts rá!) не куриться! (Ne dohányozz! Ne füstölögj!)

Hát erre csak annyit tudok mondani, hogy tudtommal de. Nálam (aki esetleg nem tudná: FreeBSD) a man setlocale nem teljesen egyértelmű (a LANG-ról ugyanis nem beszél), ellenben az environ(7) teljesen világosan ezt írja:


LANG         This variable configures all programs which use setlocale(3)
             to use the specified locale unless the LC_* variables are
             set.

LC_ALL       Overrides the values of LC_COLLATE, LC_CTYPE, LC_MESSAGES,
             LC_MONETARY, LC_NUMERIC, LC_TIME and LANG.

De a lényeg, mindegyikről jó tudni.

Hasonloval kuzodttem en is. Sajna, a tune2fs -l /dev/hdc1 | grep "check " eseten semmi hatasa.
Igy aztan bruteforce :) modszerrel irtam meg:
tune2fs -l /dev/hdc1 | grep "check " | awk '{print $8" "$5}' | sed -e 's/Jan/01/' -e 's/Feb/02/' -e 's/Mar/03/' ...

Voltakeppen azert kellett, mert kernelt csereltem es kb. ot nappal elotte jart le a mount time, aztan a cegnel mindenki idegbajt kapott, amikor fsck futott a gepen ot percig (mikoris lelottem, de tanulsagnak jo volt :)