ile yürütülüp yürütülmediğini kontrol etmenin bir yolu var. Komut dosyasında, bu komut dosyasının kabuk betikleri için hata ayıklaması için -x bayrağıyla çalıştırıldığını kontrol etmeye çalışıyorum. Kodun kendisinde -x ayarlandığını kontrol etmenin herhangi bir yolu var mı? Şartlı olarak bunu kontrol etmek ve ayarlanmışsa bir şeyler yapmak istiyorum.Kabuk betiğinin -x bayrağı
5
A
cevap
10
Kullanım:
if [[ $- == *x* ]]; then
echo "debug"
else
echo "not debug"
fi
Bash manual Gönderen:
(. $ - Bir tire) çağrılması sırasında belirtilen seti yerleşik komutla, şimdiki seçenek bayrakları genişler veya bu seti kabuğun kendisi tarafından (-i seçeneği gibi).
trap "do_this_if_it_is_being_debugged" DEBUG function do_this_if_it_is_being_debugged() { ... }
Not buna ihtiyacı yürütülecek:
2
([[ ]]
gibi bashisms olmadan) bunu yapmanın taşınabilir yolu
case $- in
(*x*) echo "under set -x"
esac
2
Sen tuzak şöyle DEBUG sinyali olabilir olurdu'dan önce (set -x
) yayınlanmaktadır.
0
Lo $SHELLOPTS
içinde xtrace
için tamam. Örneğin
: o boş olsa bile john-kugelman @
if grep -q xtrace <<<"$SHELLOPTS"; then
DO_SOMETHING;
fi
İlgili konular
- 1. -V bayrağı ve -A bayrağı grep içinde birleştiriliyor
- 2. Kabuk: satırları x - y satırına getir
- 3. sql betiğinin yürütülmesini durdur
- 4. PHP - data bayrağı ile kıvırmak?
- 5. php ile bash betiğinin çağrılması
- 6. Çıkarma bayrağı
- 7. eclipse'de php betiğinin yürütülmesini durdur
- 8. Python betiğinin işlem adını değiştirme
- 9. gettext kullanarak R betiğinin çevirisi
- 10. appengine endpoints.sh betiğinin nereden bulacağı
- 11. Kabuk
- 12. Alternatif --experimental-modülleri bayrağı
- 13. NSIS Yükleyici Hata Bayrağı
- 14. Web Bileşenleri hazır bayrağı
- 15. gcc derleyici bayrağı?
- 16. Xcode Project-derleyici bayrağı
- 17. x86 içinde Yön Bayrağı
- 18. Curl -H bayrağı php içinde
- 19. Bir R betiğinin Öldürülmesine neden olan nedir?
- 20. Kabuk betiğinde nasıl karşılaştırılır?
- 21. Kuyruktaki -f bayrağı ne yapıyor?
- 22. ngCookies'de httpOnly bayrağı nasıl ayarlanır?
- 23. -i bayrağı docker'da ne yapıyor?
- 24. Bootstrap radyo düğmesi "işaretli" bayrağı
- 25. JQuery ile boole bayrağı ayarlama
- 26. Önceden işaretleme bayrağı ne yapar?
- 27. Çalışma süresi boyunca bayrağı ekleyin (Xcode Instruments)
- 28. Kabuk pencereleri olmadan kabuk komutlarını çalıştırma
- 29. dize karşılaştırması kabuk betiğidir
- 30. Kabuk komut
, sen '$ -' tırnak içine alın kaldırıldı. $-'Boş bir dizgiye genişlediğinde bile, [[' '==' kullanılarak karşılaştırılmasına izin verileceğini varsaymak güvenli midir? – ghoti
@ghoti '['shell builtin' ve [[' shell anahtar kelimedir ve ikincisi için tırnak eklemeniz gerekmez. Tek parantez kullanırken: '[' tırnak eklemek zorunda kalacaksınız. Daha fazla bilgiyi buradan kontrol edebilirsiniz. (Http://serverfault.com/questions/52034/what-is-the-difference-between-double-and-single-square-brackets-in-bash) –