Vairāk
Kā pārbaudīt, vai fails eksistē čaulas skripta programmā
Es gribētu uzrakstīt čaulas skriptu, kas pārbauda, vai pastāv noteikts fails archived_sensor_data.json
, un, ja pastāv, izdzēš to. Pēc http://www.cyberciti.biz/tips/find-out-if-file-exists-with-conditional-expressions.html, es esmu izmēģinājis šādus variantus:
[-e archived_sensor_data.json] && rm archived_sensor_data.json
Tomēr tas izmet kļūdu
[-e: command not found
kad mēģinu palaist iegūto test_controller
skriptu, izmantojot ./test_controller
komandu. Kas ar šo kodu nav kārtībā?
151
3
Starp iekavām un
-e
trūkst nepieciešamās atstarpes:Šeit ir alternatīva metode, izmantojot
ls
:Ja vēlaties paslēpt jebkuru izvades rezultātu no
ls
, lai redzētu tikai jā vai nē, pāradresējietstdout
unstderr
uz/dev/null
:Iekšēji komandai rm jebkurā gadījumā ir jāpārbauda, vai fails pastāv, tad kāpēc pievienot vēl vienu testu? Vienkārši izdodiet
un pēc tam tā vairs nebūs, neatkarīgi no tā, vai tā tur bija vai nebija.
Izmantojiet rm -f, ja nevēlaties saņemt ziņojumus par neesošiem failiem.
Ja jums ir jāveic kāda darbība, ja fails NEeksistē, tad jums tas ir jāpārbauda pašiem. Pamatojoties uz jūsu piemēra kodu, šajā gadījumā tas tā nav.