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ā?
Šeit ir alternatīva metode, izmantojot ls
:
(ls x.txt && echo yes) || echo no
Ja vēlaties paslēpt jebkuru izvades rezultātu no ls
, lai redzētu tikai jā vai nē, pāradresējiet stdout
un stderr
uz /dev/null
:
(ls x.txt >> /dev/null 2>&1 && echo yes) || echo no
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
rm filename
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.