Próbuję sprawdzić w skrypcie, że jeśli ten skrypt jest wykonywany z flagą -x, która służy do debugowania dla skryptów powłoki. Czy jest jakiś sposób sprawdzenia, czy w samym skrypcie ustawiono -x? Chcę warunkowo to sprawdzić i zrobić coś, jeśli jest to ustawione.Czy istnieje sposób sprawdzenia, czy skrypt powłoki jest wykonywany z flagą -x
5
A
Odpowiedz
10
Zastosowanie:
if [[ $- == *x* ]]; then
echo "debug"
else
echo "not debug"
fi
Od Bash manual:
(. $ -, myślnik) Rozszerza bieżące flagi opcji, takie jakie zostały podane podczas wywołania, przez wbudowanego polecenia set lub ustawione przez samą powłokę (taką jak opcja -i).
2
przenośny sposób to zrobić (bez bashisms jak [[ ]]
) byłoby
case $- in
(*x*) echo "under set -x"
esac
2
Można pułapka sygnał Debug tak:
trap "do_this_if_it_is_being_debugged" DEBUG
function do_this_if_it_is_being_debugged() {
...
}
Uwaga ta musi być wykonana przed jest wykonywane
0
Lo ok dla xtrace
w $SHELLOPTS
.
Na przykład:
if grep -q xtrace <<<"$SHELLOPTS"; then
DO_SOMETHING;
fi
Powiązane problemy
- 1. Jak sprawdzić, czy skrypt powłoki Linux jest wykonywany przez cronjob?
- 2. Czy istnieje prosty sposób sprawdzenia kompatybilności wstecznej dla skryptów powłoki?
- 3. Czy istnieje lepszy sposób sprawdzenia, czy plik jest zapisywany?
- 4. Czy istnieje sposób sprawdzenia, czy wybór HTML jest obecnie otwarty?
- 5. Czy istnieje sposób sprawdzenia, czy komponent reagowania nie jest podłączony?
- 6. Czy istnieje sposób sprawdzenia, czy alarm jest już ustawiony?
- 7. Czy istnieje sposób sprawdzenia, czy zmienna jest zdefiniowana w Javie?
- 8. Czy istnieje sposób sprawdzenia, czy skrypt jest uruchamiany przez program PowerShell ISE?
- 9. Czy istnieje sposób sprawdzenia, czy próbka została skonfigurowana dla członka?
- 10. Java - Najszybszy sposób sprawdzenia, czy URL istnieje
- 11. pytoniczny sposób sprawdzenia, czy coś istnieje?
- 12. Czy istnieje prosty sposób sprawdzenia, czy skrypt R wykorzystał jakąkolwiek funkcję w załadowanym pakiecie?
- 13. Podczas debugowania istnieje sposób sprawdzenia, czy obiekt jest inną instancją?
- 14. Jaki jest najlepszy sposób sprawdzenia, czy istnieje atrybut?
- 15. Czy istnieje sposób sprawdzenia, ile parametrów jest wymaganych dla metody?
- 16. Jaki jest najlepszy sposób sprawdzenia, czy URL istnieje w PHP?
- 17. Czy istnieje sposób sprawdzenia, czy skrypt php działa w trybie cli?
- 18. Jak ustalić, czy kod jest wykonywany jako skrypt lub funkcja?
- 19. Czy istnieje sposób sprawdzenia, czy operacja OpenGL została zakończona?
- 20. Czy istnieje sposób sprawdzenia, czy odebrano transmisje LocalBroadcastManager?
- 21. Czy istnieje sposób sprawdzenia, czy ReactElement renderuje wartość "null"?
- 22. Czy istnieje sposób sprawdzenia, czy element zakończył przejście CSS3?
- 23. Czy istnieje sposób sprawdzenia, czy zdefiniowano funkcję VBScript?
- 24. Czy istnieje sposób sprawdzenia, czy dwa elementy DOM są równe?
- 25. Czy istnieje sposób sprawdzenia, czy wymuszono tryb ścisły?
- 26. Czy można przyspieszyć ten skrypt powłoki?
- 27. W scala, czy istnieje sposób sprawdzenia, czy wystąpienie jest obiekt singleton, czy nie?
- 28. Jaki jest najlepszy sposób sprawdzenia, czy atrybut istnieje i czy jest ustawiony?
- 29. Jak dokładnie wykonywany jest skrypt PHP?
- 30. Czy istnieje sposób sprawdzenia, czy istnieje wiele powiązań istnieje w Rails 3.1?
@ john-kugelman, usunięto cudzysłowie '$ -' mimo to może być puste. Czy można bezpiecznie założyć, że nawet jeśli '$ -' rozwija się do pustego łańcucha,' [['pozwoli na porównanie go za pomocą' == '? – ghoti
@ghoti '[' jest wbudowanym powłoką i '[[' jest słowem kluczowym powłoki, a dla tego ostatniego nie trzeba dodawać cudzysłowów. Używając pojedynczych nawiasów: '[musiałbyś dodać cytaty. Możesz sprawdzić więcej szczegółów [tutaj] (http://serverfault.com/questions/52034/what-is-the-difference-between-double-and-single-square-brackets-in-bash) –