File delle preferenze danneggiato in / bin / sh

-1

Oggi in Drive Genius 3, ho eseguito la funzione "Verifica le preferenze" in Ripara . Ha prodotto questo strano risultato:

/bin/sh: xargs: command not found

L'unica opzione offerta da Drive Genius è quella di rimuovere il file e sembra che probabilmente non dovrei rimuovere un file in / bin ! Qualcuno può aiutarmi a risolvere questo problema e dirmi cosa dovrei fare? Le mie specifiche sono qui sotto. Grazie!

MacBook Pro (13 pollici, inizio 2011)
OS X Yosemite (10.10)
È stato rilevato un errore utilizzando Drive Genius 3.2.4 in esecuzione su un'unità USB avviabile

    
posta jffffj 18.11.2014 - 22:13
fonte

1 risposta

1

Questo è un po 'speculativo, ma troppo lungo per rientrare in un commento.

Il messaggio di errore suona come Drive Genius chiama uno script di aiuto che tenta di eseguire sh e che contiene un errore che blocca il PATH all'interno di questo script.

La dimostrazione del concetto è qualcosa come

#!/bin/sh
PATH=  # oops
xargs </dev/null

Senza accedere a Drive Genius, è quasi impossibile trovare la posizione precisa dell'errore. Il comando potrebbe essere hard-coded in un binario che fa qualcosa di simile

execvp("sh", "-c", "PATH=; xargs");

che sarà difficile da trovare e impossibile da risolvere, senza accedere al codice sorgente del programma.

Un errore principiante comune sta scegliendo PATH come nome della variabile per qualcosa che non vuole effettivamente modificare il percorso di ricerca dell'eseguibile della shell. La guida per gli script di shell è di utilizzare solo nomi di variabili minuscole per le variabili interne del tuo script, ma questo consiglio è ampiamente ignorato, anche negli script scritti dai cosiddetti professionisti.

    
risposta data 21.10.2016 - 13:38
fonte

Leggi altre domande sui tag