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 shellubuiltin
(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 oset
a jeho přátelích! - ale existuje a
man
stránka proset
! 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
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.
{ set +x ;} 2> /dev/null
skryje stopuset +x
(vyhrál ' ale nefunguje v prostředí Bourne). Některé skořápky stále vydávají+ 2> /dev/null
.