GNU/Linux >> Znalost Linux >  >> Ubuntu

Příkaz, který se ukončí s nulovým stavem (ne /bin/true)?

Mám Makefile, který spouští nástroj, který chvíli trvá; umožňuje mi nahradit použitý příkaz:

make TOOL=alternative-tool

Chtěl bych tento krok v Makefile přeskočit, takže hledám příkaz, který se ukončí se stavem 0 a který má zanedbatelné vedlejší účinky.

Samozřejmě bych mohl použít jen true , ale to je trochu matoucí:

make TOOL=true

To zní, jako bych chtěl nástroj spustit, ale já ne.

Existuje ve výchozím nastavení nainstalovaný spustitelný soubor, který není /bin/true který končí se stavem 0 a má chytlavý a snadno napsat název?

Přijatá odpověď:

I když jste požádali o něco, co „není /bin/true “, nahrazující true s celým jménem /bin/true ukázat, že je to true program spíše než nějaký jiný význam slova „pravda“ je pravděpodobně nejlepším řešením.

Jde vám o to, aby true v

make TOOL=true

se zdá být něco jiného než název příkazu. Ale když píšeš

make TOOL=/bin/true

pak je to jednoznačně příkaz. Někdo si může špatně přečíst TOOL=true to znamená, že je někde zamýšlen nějaký jiný nástroj, ale žádné takové chybné čtení TOOL=/bin/true je pravděpodobné.

Nejsem si jistý, kdy : , což je vestavěný shell, ale ne externí příkaz, bude fungovat. Henning Makholm oznámil, že to funguje. Ale myslím, že to nefunguje ve všech situacích a vy jste zjistili, že to nefunguje pro vás.

Pokud jde o alias shellu, nemůžete jej použít, protože rozšíření aliasů se neprovádí v argumentech, které předáváte příkazu, ani soubory makefile nepoužívají dříve definované aliasy shellu. I když make spouští vaše příkazy v novém shellu, tento shell nebude mít alias (a nepoužil by ho, i kdyby jej měl, protože by to byl neinteraktivní shell, kde rozšíření aliasů není automaticky povoleno).


Ubuntu
  1. /usr/bin Vs /usr/local/bin Na Linuxu?

  2. Značka:Dh:Příkaz nenalezen?

  3. Ověřování proxy pomocí terminálu Ubuntu 14.04?

  1. „Nelze vytvořit adresář mezipaměti /home//.composer/cache/repo/https—packagist.org/, nebo adresář není zapisovatelný. Pokračovat bez mezipaměti“?

  2. Přesunutý obsah /bin do /usr/bin, je možné vrátit zpět?

  3. #!/bin/sh vs #!/bin/bash pro maximální přenositelnost

  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Ubuntu – /usr/bin/host nevyzvedává změny v /etc/hosts ani po restartu?

  3. Linux – sloučení /usr/bin A /usr/sbin do /bin (gnu/linux)?