GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Commande qui se termine avec le statut zéro (pas /bin/true) ?

J'ai un Makefile qui exécute un outil qui prend un peu de temps ; ça me permet de remplacer la commande utilisée :

make TOOL=alternative-tool

J'aimerais ignorer cette étape dans le Makefile, donc je recherche une commande qui se termine avec le statut 0 et qui a des effets secondaires négligeables.

Évidemment, je pourrais simplement utiliser true , mais c'est un peu déroutant :

make TOOL=true

Cela se lit comme si je vouloir pour exécuter l'outil, mais je ne le fais pas.

Existe-t-il un exécutable installé par défaut qui n'est pas /bin/true qui sort avec le statut 0, et qui a un nom accrocheur et facile à saisir ?

Réponse acceptée :

Même si vous avez demandé quelque chose qui n'est "pas /bin/true ", remplaçant true avec le nom complet /bin/true pour montrer que c'est le true programme plutôt qu'une autre signification de "vrai" est probablement la meilleure solution.

Votre préoccupation est que le true dans

make TOOL=true

semble être autre chose qu'un nom de commande. Mais si vous écrivez

make TOOL=/bin/true

alors c'est sans ambiguïté une commande. Quelqu'un pourrait mal lire TOOL=true pour signifier qu'un autre outil quelque part est prévu, mais pas une telle erreur de lecture de TOOL=/bin/true est probable.

Je ne sais pas quand : , qui est une commande interne du shell mais pas une commande externe, fonctionnera. Henning Makholm a signalé que cela semble fonctionner. Mais je pense que cela ne fonctionne pas dans toutes les situations, et vous avez constaté que cela ne fonctionnait pas pour vous.

Quant à un alias de shell, vous ne pouvez pas l'utiliser car l'expansion d'alias n'est pas effectuée dans les arguments que vous transmettez à une commande, et les makefiles n'utilisent pas non plus les alias de shell précédemment définis. Même si make exécute vos commandes dans un nouveau shell, ce shell n'aura pas l'alias (et ne l'utilisera pas même s'il l'avait, car ce serait un shell non interactif, où l'expansion d'alias n'est pas automatiquement activée).


Ubuntu
  1. Linux – Fusionner /usr/bin et /usr/sbin dans /bin (gnu/linux) ?

  2. Pourquoi /bin/sh pointe-t-il vers /bin/dash et non /bin/bash ? ?

  3. Marque :Dh :Commande introuvable ?

  4. $home/.local/bin n'est pas dans le chemin pour Ubuntu 19.04 ?

  5. Authentification Proxy Avec Terminal Ubuntu 14.04 ?

Commande ‘make’ introuvable sur Ubuntu 20.04 Focal Fossa

Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

Ubuntu - /usr/bin/host ne récupère pas les modifications apportées à /etc/hosts même après le redémarrage ?

Linux – /sbin/init n'existe pas ?

Différence entre /bin et /usr/bin

Pourquoi le vrai et le faux sont-ils si grands ?