df -t nfs $ directoryCome dire (in sh) se una directory è montata su NFS
restituisce due righe di output se la directory è NFS-montato e una riga se non lo è.
Alcune versioni di df danno stato di uscita 1 se non è stato eseguito il montaggio NFS, ma GNU coreutils 5.3.0 non lo fa ...
if [ `df -t nfs . | wc -l` = 2 ];
sente poco elegante e colleghi dicono che non è così controllare sufficientemente gli errori. C'è un modo migliore per farlo?
Ho provato alcune opzioni, ma la tua sembra ancora più elegante per me. I tuoi colleghi hanno menzionato gli errori che potrebbero eludere questo metodo? +1 per un bel tentativo. –
OK, ho trovato un problema. Se la prima colonna di output è eccessivamente lunga (ad esempio 'nfs_server:/long/mount/point'), quindi' df' dividerà l'output su due righe e finirai con 'wc -l = 3'. Risolto facilmente cambiando la tua soluzione in 'if [.... -gt 1]'. –
@ShawnChin: Se si applica l'opzione '--portability' /' -P', non verrà eseguito il wrapping di linee lunghe. Perfetto per la lavorazione della macchina. (Testato con 'df (GNU coreutils) 7.4') – RobM