GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Comando che esce con stato zero (non /bin/true)?

Ho un Makefile che esegue uno strumento che richiede un po' di tempo; mi permette di sostituire il comando utilizzato:

make TOOL=alternative-tool

Vorrei saltare quel passaggio nel Makefile, quindi sto cercando un comando che esca con lo stato 0 e che abbia effetti collaterali trascurabili.

Ovviamente, potrei semplicemente usare true , ma è un po' confuso:

make TOOL=true

Si legge come se io voglio per eseguire lo strumento, ma non lo faccio.

Esiste un eseguibile installato di default che non sia /bin/true che esce con lo stato 0 e che ha un nome accattivante e facile da digitare?

Risposta accettata:

Anche se hai chiesto qualcosa che "non è /bin/true “, sostituendo true con il nome completo /bin/true per mostrare che è il true programma piuttosto che qualche altro significato di "vero" è probabilmente la soluzione migliore.

La tua preoccupazione è che il true in

make TOOL=true

sembra essere qualcosa di diverso dal nome di un comando. Ma se scrivi

make TOOL=/bin/true

allora questo è inequivocabilmente un comando. Qualcuno potrebbe leggere male TOOL=true significa che è previsto qualche altro strumento da qualche parte, ma nessuna lettura errata di TOOL=/bin/true è probabile.

Non sono sicuro di quando : , che è una shell incorporata ma non un comando esterno, funzionerà. Henning Makholm ha riferito che sembra funzionare. Ma penso che non funzioni in tutte le situazioni e hai scoperto che non ha funzionato per te.

Per quanto riguarda un alias di shell, non è possibile utilizzarlo perché l'espansione dell'alias non viene eseguita negli argomenti che si passano a un comando, né i makefile fanno uso di alias di shell precedentemente definiti. Anche se make esegue i tuoi comandi in una nuova shell, quella shell non avrà l'alias (e non lo userebbe anche se lo avesse, perché sarebbe una shell non interattiva, in cui l'espansione dell'alias non è abilitata automaticamente).


Ubuntu
  1. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  2. Ubuntu – /usr/bin/host non rileva le modifiche a /etc/hosts anche dopo il riavvio?

  3. Linux – Unire /usr/bin e /usr/sbin in /bin (gnu/linux)?

  4. Marca:Dh:Comando non trovato?

  5. "impossibile creare la directory della cache /home//.composer/cache/repo/https—packagist.org/, oppure la directory non è scrivibile. Procedere senza cache”?

Comando 'make' non trovato su Ubuntu 20.04 Focal Fossa

/usr/bin Vs /usr/local/bin Su Linux?

Linux – /sbin/init non esiste?

Installa i binari in /bin, /sbin, /usr/bin e /usr/sbin, interazioni con --prefix e DESTDIR

Spostato il contenuto di /bin in /usr/bin, è possibile annullare?

Perché vero e falso sono così grandi?