GNU/Linux >> Znalost Linux >  >> Fedora

Bash 4.3 „multiple Dot“ příkazy tiše selhávají na Fedoře?

Právě jsem to zaznamenal na bash 4.3; přesné číslo verze je 4.3.42(1)-release (x86-redhat-linux-gnu).

$ ..
$ ...
$ ....
$ .....

Proč se nezobrazí dotaz „příkaz nenalezen“?

$ ...
$ echo $? 
$ 127

Zkontroloval jsem $PATH a alias nic; Ani ten muž nepomáhá.
Bash běží na Fedora Linuxu, ale myslím, že to nesouvisí s OS.

UPRAVIT

Právě jsem poznamenal, že je to stejné pro jakýkoli příkaz spouštění tečkou

.za
.zaza
..za
..zaza

Přijatá odpověď:

To bylo způsobeno manipulací s příkazem-not-found ve Fedoře.

Spuštění neznámého příkazu (včetně ... atd. pokud se žádný alias neshoduje) způsobí command_not_found_handle spustit s chybějícím příkazem jako parametrem (viz /etc/profile.d/PackageKit.sh pro jeho definici). V daném scénáři pak handler spustí /usr/libexec/pk-command-not-found , opět s chybějícím příkazem jako parametrem. Dříve pk-command-not-found jednoduše ignoroval jakýkoli příkaz začínající . :

if (argv[1][0] == '.')
    goto out;

a skončil s kódem 127.

Toto chování bylo zavedeno k opravě Red Hat #1151185, je také odkazováno v Bash, netiskne žádnou chybovou zprávu na neexistující příkazy začínající tečkou a obsahuje chybu požadující opravu (Red Hat #1292531). V FC 27 to bylo z velké části opraveno aktualizacemi od PackageKit 1.1.8 (viz tento odevzdání):nyní se zpracovávají příkazy s tečkami na začátku, pouze . a .. jsou ignorovány.


Fedora
  1. 15 užitečných vestavěných příkazů Bash Shell (s příklady)

  2. UNIX / Linux :Příklady příkazů historie bash pro opakování posledních příkazů

  3. příkaz pro export bash

  1. Propojené příkazy s ovládacími operátory v Bash

  2. Příkazy Bash bang:Nezbytný trik pro příkazový řádek Linuxu

  3. Linuxové příkazy od A do Z

  1. Přesměrování výstupu příkazu do proměnné v bash se nezdaří

  2. Spusťte příkaz bash na jenkins pipeline

  3. chroot selže - nelze spustit příkaz `/bin/bash':Žádný takový soubor nebo adresář