Pytania oznaczone «subshell»

51
Czy $ () jest podpowłoką?

Rozumiem, że jest to składnia podpowłoki. Czy (<commands...>)to $()tylko podpowłoka, z której można pobrać wartości zmiennych? Uwaga: dotyczy to wersji bash 4.4 opartej na różnych sformułowaniach w ich

48
Dlaczego (wyjście 1) nie wychodzi ze skryptu?

Mam skrypt, który nie wychodzi, kiedy chcę. Przykładowy skrypt z tym samym błędem to: #!/bin/bash function bla() { return 1 } bla || ( echo '1' ; exit 1 ) echo '2' Zakładam, że zobaczę wynik: :~$ ./test.sh 1 :~$ Ale tak naprawdę widzę: :~$ ./test.sh 1 2 :~$ Czy ()tworzenie łańcuchów...

31
Tworzenie podpowłoki za pomocą nawiasów klamrowych

Zgodnie z tym , umieszczenie listy poleceń między nawiasami klamrowymi powoduje, że lista jest wykonywana w bieżącym kontekście powłoki. Nie jest tworzona podpowłoka . Za pomocą, psaby zobaczyć to w akcji Jest to hierarchia procesów dla potoku procesu wykonywanego bezpośrednio w wierszu poleceń....

30
zamknij skrypt powłoki z podpowłoki

Rozważ ten fragment: stop () { echo "${1}" 1>&2 exit 1 } func () { if false; then echo "foo" else stop "something went wrong" fi } Zwykle funcwywołanie powoduje zakończenie skryptu, co jest zamierzonym zachowaniem. Jednak jeśli jest wykonywany w podpowłoce, na przykład...

24
Zasada wywoływania podpowłoki w Bash?

Wydaje mi się, że źle rozumiem zasadę Bash dotyczącą tworzenia podpowłoki. Myślałem, że nawiasy zawsze tworzą podpowłokę, która działa jako własny proces. Wydaje się jednak, że tak nie jest. W fragmencie kodu A (poniżej) drugie sleeppolecenie nie działa w osobnej powłoce (określonej przez...

24
Jak mogę sprawdzić, czy jestem w podpowłoce?

Próbuję napisać funkcję, która zastąpi funkcjonalność exitwbudowanego systemu, aby uniemożliwić mi wyjście z terminala. Próbowałem użyć SHLVLzmiennej środowiskowej, ale wydaje się, że nie zmienia się w podpowłokach: $ echo $SHLVL 1 $ ( echo $SHLVL ) 1 $ bash -c 'echo $SHLVL' 2 Moja funkcja jest...

18
Dlaczego zmienna jest widoczna w podpowłoce?

W Learning Bash Book wspomniano, że podpowłoka odziedziczy tylko zmienne środowiskowe i deskryptory plików itp. Oraz że nie odziedziczy zmiennych, które nie są eksportowane: $ var=15 $ (echo $var) 15 $ ./file # this file include the same command echo $var $ Jak wiem, powłoka utworzy dwie...

16
Stanowa funkcja bash

Chciałbym zaimplementować funkcję w Bash, która zwiększa (i zwraca) liczbę przy każdym wywołaniu. Niestety wydaje się to nietrywialne, ponieważ wywołuję funkcję wewnątrz podpowłoki, w związku z czym nie może ona modyfikować zmiennych powłoki nadrzędnej. Oto moja próba: PS_COUNT=0 ps_count_inc()...

14
Czy pułapka jest dziedziczona przez podpowłokę?

Próbowałem następującego skryptu: #!/bin/bash trap 'echo "touching a file" && touch $FILE' EXIT foo1(){ echo "foo1" } foo(){ echo "foo" export FILE=${FILE:-/tmp/file1} } (foo1) foo Dane wyjściowe powyższego skryptu były następujące: [root@usr1 my_tests]# ./test.sh foo1 foo touching a...

13
Podświetlanie składni podpowłoki Bash

Biorąc pod uwagę dużą liczbę pytań, które okazują się być związane z podpowłokami w Bash („Dlaczego mój zmienny przyrost w tej pętli potokowejwhile read ?”), Po prostu pomyślałem, że byłoby miło nawiązać do jakiegoś edytora lub usługi, w której kod który zostanie wykonany w podpowłoce jest...

11
Rozwiń podpowłokę przed jej uruchomieniem?

Często uruchamiam polecenia za pomocą podpowłoki, a czasem chciałbym rozszerzyć podpowłoki, zanim coś uruchomię. W ten sposób mogę zweryfikować to, co robię, i ewentualnie edytować to, co się wkrótce wydarzy. Na przykład, jak mogę uzyskać rozwinięcie następującego wiersza polecenia, zanim go...

11
Jest podpowłoką to samo, co skorupa podrzędna

Istnieją dwie nazwy: podpowłoka i powłoka podrzędna . Tak, proces potomny zostanie uruchomiony przez dowolną z następujących czynności: sh -c 'echo "Hello"' ( echo "hello" ) echo "$(echo "hello") echo "hello" | cat Czy wszystkie są równoważne i mają tę samą nazwę? Czy wszystkie mają te same...