Як скасувати `set -x`?


77

Я набрав set -xтермінал.

Тепер термінал продовжує друкувати останню команду, запущену над моїм виходом, так що команда

~]$echo "this is what I see"

повертає

+ echo 'this is what I see'
this is what I see

Немає довідної сторінки для того set, як я set -xвідключу?


8
set- builtinкоманда оболонки (принаймні, в bash це), тому документація знаходиться на сторінці man's bash. Шукайте на сторінці чоловіка, /^ *SHELL BUILTIN COMMANDSщоб прочитати все про setйого друзів!
dg99

4
але єman сторінка set! Це частина посібника для програмістів POSIX ... Ви справді повинні отримати цю серію ... будь ласка?
mikeserv

8
Введіть Bash help set.
200_успіх

@ lonewarrior556 Якщо ви вважаєте, що будь-яка відповідь є корисною, можете прокоментувати та / або позначити рішення. Ми робимо свій час, щоб допомогти ....
Simply_Me

Відповіді:


77

Використовуйте set +x. Більше інформації:

$ type set
set is a special shell builtin

Оскільки setвбудована оболонка, це зафіксовано в документації вашої оболонки.

Слідкуйте за тим, що в деяких системах є підручні сторінки для вбудованих оболонок, але ці довідкові сторінки є правильними лише тоді, коли ви використовуєте оболонку за замовчуванням. В Linux у вас можуть бути підручні сторінки, на яких представлені команди POSIX, які відображатимуться для вбудованих оболонок, оскільки не існує жодної сторінки автономної утиліти, яка б їх затінювала; ці підручні сторінки є правильними для всіх оболонок у стилі Борна (тире, баш, * ksh і навіть zsh), але, як правило, неповні.

Підказки щодо пошуку вбудованої сторінки на довгій оболонці див. У розділі " Читання та пошук довгих сторінок ".

У цьому випадку відповідь однакова для всіх снарядів у стилі Борна. Якщо ввімкнено опцію, вимикає її. Таким чином, вимикає сліди. Останній слід, який читається , неминучий (за винятком випадків, коли випускаєте оболонку - іноді ви можете використовувати підзаглушку ).set -LETTERset +LETTERset +xset +x(set -x; command to trace; other command to trace); command that is not traced


4
Це хороша відповідь, але це врятувало б мені пару хвилин, якби ви поставили основний "set + x" на початку, а не вклали в останній абзац. (Я знайшов додаткові деталі корисним.)
DA

2
{ set +x ;} 2> /dev/nullприховує set +xслід (хоча в оболонці Борна не буде працювати). Деякі снаряди все ж виводять + 2> /dev/null.
Стефан Шазелас


18

Ви ввімкнули режим налагодження, його потрібно вимкнути.

Форма витягу help set:

Використання +, а не - призводить до вимкнення цих прапорів.

Отже, наберіть set +x


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

Ви не можете знайти чоловічу сторінку просто на setтому, що, як ви бачите нижче:

$ type set

setє вбудованою спеціальною оболонкою. Хоча задокументовано на сторінці man для вашої оболонки, припускаючи, що баш тут, ви також можете отримати конкретну документацію з будь-якою

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

Сторінка посібника по bash або sh добре прочитана, але розібратися небагато. Ефективна інформація, необхідна для скасування налаштування, -xзнаходиться в кінці раніше Exit Status:і читає:

Використання +, а не - призводить до вимкнення цих прапорів. Прапори також можна використовувати при виклику оболонки. Поточний набір прапорів можна знайти в $ -. Решта n ARG є позиційними параметрами і призначаються для того, щоб $ 1, $ 2, .. $ n. Якщо ARG не вказано, всі змінні оболонки друкуються.


Хоча ви не помиляєтеся, що ви додали за межі існуючих відповідей?
Джефф Шаллер

@JeffSchaller Відредаговано для прямоти та стислості. Коли мені потрібна була відповідь, мені довелося прочитати всю сторінку, щоб дізнатися правильну відповідь. Насправді я відмовився читати прийняту відповідь і просто пішов help setі прочитав це. Я намагався вдосконалити прийняту відповідь. unix.stackexchange.com/reitions/149137/4 Він був прийнятий, але потім відхилений. Як і новинна стаття, вона починається з найважливішої інформації та передбачає, що в будь-який момент читач може зупинитися, при цьому кожне наступне речення та абзац мають менш важливе значення, ніж дію. Це мій стиль SO на unix se.
dlamblin
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.