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')"