( Zahy | 2012. 07. 04., sze – 09:45 )

Csak ehhez tennék még hozzá valamit:

now="$(date "+%s")"

Így, ahogy ide van írva, ez a következőt jelenti:
- egy "sztring" a $-jeltől a szóközig (inkluzíve)
- ehhez hozzáragasztjuk azt, hogy +%s (amit viszont *nem* "sztringizálsz")
- ehhez hozzáragasztjuk a ) -et, amit megint sztringgé "változtatsz".

Tekintettel arra, hogy amúgy shell-változóban nincs olyan hogy sztring (mert ugye az idézőjel nem arra szolgál, hane speciális karakterek takarására; ellenben minden sztring, ha csak nem jelzed az ellenkezőjét, pl. integer) - ez a fenti nem egészen úgy történik, ahogy *szerintem* gondoltad.

Én személy szerint a "belső" idézőjelpár helyére sima aposztrófot tennék, és akkor már pontosan az történik, amit valószínűleg akartál.

Ugyanis a miatt, hogy a +%s nincs shell elől eltakarva, később belefuthatsz abba, hogy a shell esetleg a %XYZ-t majd valamiként értelmezi. Speciel bash-ban/kshban a %akarmi az akarmi-háttérprocess job-id-jeként értelmeződik. Legalábbis bizonyos parancsoknál mindenképp - fg/bg/kill pl.

Szóval az általad is emlegetett defenzív programozás miatt nem hiszem, hogy ez így jó ötlet, helyette javasolható:

now="$(date '+%s')"