Set -x nasıl geri alınır?


77

set -xTerminalde yazdım .

Şimdi terminal, çıktımın üzerine geçen son komutu yazdırmaya devam ediyor, böylece komut

~]$echo "this is what I see"

döner

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

İçin bir adam sayfası setyok, nasıl set -xkapanırım?


8
setbir kabuk builtinkomutudur (en azından bash ise), bu yüzden belgeler bash'ın man sayfasında bulunur. /^ *SHELL BUILTIN COMMANDSHakkında setve arkadaşlarıyla ilgili bilgileri okumak için man sayfasında arama yapın !
dg99

4
ama için bir mansayfa varset ! POSIX programcıları kılavuzunun bir parçası ... Bu seriyi gerçekten almalısınız ... lütfen?
mikeserv

8
Bash'e yazın help set.
200_success

@ lonewarrior556 Herhangi bir cevabı bulursanız, lütfen bir çözümü yorumlayabilir ve / veya işaretler misiniz? Yardımcı olmak için zaman
ayırıyoruz

Yanıtlar:


77

Kullanın set +x. Daha fazla bilgi:

$ type set
set is a special shell builtin

Yana setbir kabuk yerleşiğidir, bu kabuğun belgelerinde belgelenmiştir.

Bazı sistemlerin kabuk yerleşimleri için adam sayfalarına sahip olduğuna dikkat edin, ancak bu adam sayfaları yalnızca varsayılan kabuğu kullanıyorsanız doğrudur. Linux'ta, POSIX komutlarını sunan ve kabuk yerleşimlerini belirten, sayfaların gölgelenmesi için bağımsız bir yardımcı programın adam sayfası olmadığı için man sayfalarınız olabilir; Bu kılavuz sayfaları, Bourne tarzı mermiler için (çizgi, bash, * ksh ve hatta zsh) doğrudur, ancak genellikle eksiktir.

Uzun kabuk sayfalarında bir eklenti aramakla ilgili ipuçları için bkz. Uzun adam sayfalarını okuma ve arama .

Bu durumda, cevap tüm Bourne tarzı mermiler için aynıdır. Bir seçeneği açarsa , kapatır. Böylece izleri kapatır. Okuyan son iz kaçınılmazdır (kabuğun çıkmasına izin vermek dışında - bazen bir deniz kabuğu kullanabilirsiniz ).set -LETTERset +LETTERset +xset +x(set -x; command to trace; other command to trace); command that is not traced


4
Bu iyi bir cevaptır, ancak temel "set + x" ifadesini son paragrafa yerleştirmek yerine başlangıçta koyarsanız bana birkaç dakika kazandırırdı. (Ek detayları faydalı buldum.)
DA

2
{ set +x ;} 2> /dev/nullset +xizi gizler (Bourne kabuğundaki işe yaramaz). Bazı mermiler hala bir + 2> /dev/nullsonuç veriyor.
Stéphane Chazelas 30:16


18

Hata ayıklama modunu etkinleştirdiniz, kapatmanız gerekiyor.

Formu al help set:

+ Yerine + kullanılması bu bayrakların kapatılmasına neden olur.

Yani yazın set +x


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

Sadece bir sayfa bulamıyorsunuz set, çünkü aşağıda gördüğünüz gibi:

$ type set

setyerleşik bir özel kabuktur. Kabuğunuzun man sayfasında belgelenmiş olmasına rağmen, burada bash varsayarak, her ikisiyle de özel belgeler alabilirsiniz.

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

Bash veya sh'daki manuel sayfa iyi bir okumadır, ancak çözülmesi biraz uzundur. Ayarlarını kaldırmak için ihtiyaç duyduğun etkili bilgiler daha -xönce sonunda Exit Status:ve okuyor:

+ Yerine + kullanılması bu bayrakların kapatılmasına neden olur. Bayraklar kabuğun çağrılması üzerine de kullanılabilir. Geçerli bayrak kümesi $ - içinde bulunabilir. Kalan n ARG konumsal parametrelerdir ve sırasıyla $ 1, $ 2, .. $ n'ye atanır. Eğer hiçbir ARG verilmezse, tüm kabuk değişkenleri yazdırılır.


Yanlış olmasa da, mevcut cevapların ötesine ne eklediniz?
Jeff Schaller

@JeffSchaller Doğruluk ve kısalık için düzenlenmiştir. Bu cevaba ihtiyacım olduğunda doğru cevabı bulmak için tüm sayfayı okumak zorunda kaldım. Aslında kabul edilen cevabı okumaktan vazgeçtim, help setgidip okudum. Kabul edilen cevabı iyileştirmeye çalıştım. unix.stackexchange.com/revisions/149137/4 Kabul edildi, sonra reddedildi. Bir haber makalesi gibi, en önemli bilgilerle başlar ve okuyucunun herhangi bir noktada durabileceğini, bir sonraki cümlenin ve paragrafın işlemden daha az önemli olduğunu varsayar. Unix se'deki SO tarzım.
dlamblin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.