Jak vrátit `set -x`?

Do terminálu jsem zadal set -x.

Nyní terminál tiskne poslední příkaz spustit nad mým výstupem, takže příkaz

~]$echo "this is what I see" 

vrací

+ echo "this is what I see" this is what I see 

existuje žádná manuálová stránka pro set, jak vypnu set -x?

Komentáře

  • set je příkaz shellu builtin (alespoň v bash to je), takže dokumentace je nalezena v manuálové stránce bash '. Vyhledejte na stránce manuálu /^ *SHELL BUILTIN COMMANDS a přečtěte si vše o set a jeho přátelích!
  • ale existuje a man stránka pro set! Je součástí průvodce programátory POSIX … Měli byste opravdu získat tuto sérii … prosím?
  • V Bash zadejte help set.
  • @ lonewarrior556 pokud vám některá z odpovědí připadá užitečná, můžete prosím komentovat a / nebo označit řešení. Přispíváme svým časem na pomoc ….

Odpověď

Použijte set +x. Další informace:

$ type set set is a special shell builtin 

Protože set je vestavěný shell, je zdokumentován v dokumentaci vašeho prostředí.

Pozor, některé systémy mají manuálové stránky pro vestavěné prostředí, ale tyto manuálové stránky jsou správné, pouze pokud používáte výchozí prostředí. V Linuxu můžete mít manuálové stránky, které představují příkazy POSIX, který se objeví pro vestavěné prostředí, protože neexistuje žádná manuálová stránka samostatného nástroje, která by je zastínila; tyto manuálové stránky jsou správné pro všechny skořápky ve stylu Bourne (dash, bash, * ksh a dokonce i zsh), ale obvykle neúplné.

Tipy pro hledání vestavěné v manuálové stránce dlouhého shellu najdete v Čtení a prohledávání dlouhých stránek .

V tomto případě je odpověď stejná pro všechny granáty ve stylu Bourne. Pokud set -LETTER zapne možnost, set +LETTER ji vypne. set +x tedy vypne stopy. Poslední stopě, která čte set +x, se nelze vyhnout (kromě toho, že necháte ukončit prostředí – někdy můžete použít subshell (set -x; command to trace; other command to trace); command that is not traced).

Komentáře

  • To je dobrá odpověď, ale kdybyste vložili základní " set + x " na začátku, místo vložení do posledního odstavce. (Další podrobnosti mi byly užitečné.)
  • { set +x ;} 2> /dev/null skryje stopu set +x (vyhrál ' ale nefunguje v prostředí Bourne). Některé skořápky stále vydávají + 2> /dev/null.

Odpovědět

Režim ladění můžete zastavit pomocí set +x. Viz příklad stránka

Odpověď

Povolili jste ladění režimu, musíte jej vypnout.

Rozbalit formulář help set:

Použití + spíše než – způsobí, že tyto příznaky budou vypnuty.

Zadejte tedy set +x

Odpověď

$ set +x # is the opposite of set -x, and will reverse what you typed. 

Manuální stránku nenajdete pouze na set, protože jak vidíte níže:

$ type set 

set je vestavěný speciální shell . Zatímco je to zdokumentováno na manuálové stránce vašeho shellu, za předpokladu, že zde máte bash, můžete také získat konkrétní dokumentaci buď

$ help set || builtin help set # luckily Bash has builtin help on builtin commands 

Ruční stránka na bash nebo sh je dobré čtení, ale jeho vyřešení trvá trochu dlouho. Účinné informace, které potřebujete k zrušení nastavení -x, jsou na konci před Exit Status: a zní:

Používání + spíše než – způsobí, že tyto příznaky budou vypnuty. Příznaky lze také použít při vyvolání shellu. Aktuální sadu příznaků najdete v $ -. Zbývajících n ARG jsou poziční parametry a jsou přiřazeny v pořadí $ 1, $ 2, .. $ n. Pokud nejsou zadány žádné ARG, vytisknou se všechny proměnné prostředí.

Komentáře

  • I když to není špatné , co jste přidali nad rámec stávajících odpovědí?
  • @JeffSchaller It ' s upraveno pro přímost a stručnost. Když jsem potřeboval tuto odpověď, musel jsem si přečíst celou stránku, abych zjistil správnou odpověď. Ve skutečnosti jsem se vzdal čtení přijaté odpovědi a prostě jsem šel do help set a přečetl si to. Pokusil jsem se vylepšit přijatou odpověď. unix.stackexchange.com/revisions/149137/4 Bylo přijato, ale poté zamítnuto.Stejně jako novinový článek začíná nejdůležitějšími informacemi a předpokládá, že se čtenář může kdykoli zastavit, přičemž každá další věta a odstavec jsou méně důležité než postup. Je to ' s mým stylem SO na unixu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *