Pytania specyficzne dla GNU Bourne Again SHell, w przeciwieństwie do innych powłok Bourne / POSIX. W przypadku pytań dotyczących powłok uniksowych użyj zamiast tego znacznika / shell.
Czy istnieje maksymalne rozszerzenie nazwy pliku bash (globbing), a jeśli tak, to co to jest? Zobacz globbing na tldp.org. Powiedzmy, że chcę uruchomić polecenie dla podzbioru plików: grep -e bar foo* rm -f bar* Czy istnieje ograniczenie liczby rozwijanych plików bash, a jeśli tak, to co to jest? Nie szukam …
Potrzebuję skryptu, aby zrobić coś z każdym plikiem w bieżącym katalogu, z wyłączeniem podkatalogów. Na przykład w bieżącej ścieżce znajduje się 5 plików, ale 1 z nich to folder (podkatalog). Mój skrypt powinien aktywować polecenie podane jako argumenty podczas uruchamiania tego skryptu. To znaczy „skrypt bash wc -w” powinien podawać …
Próbuję zrobić kilka sztuczek z dd. Myślałem, że możliwe będzie przechowywanie niektórych wartości szesnastkowych w zmiennej o nazwie „nagłówek”, aby przesłać je do dd. Mój pierwszy krok bez zmiennej był następujący: $ echo -ne "\x36\xc9\xda\x00\xb4" |dd of=hex $ hd hex 00000000 36 c9 da 00 b4 |6....| 00000005 Potem próbowałem …
Przeszukuję różne źródła, ale nie mogę znaleźć dobrego opisu anatomii zbierania dzieci. To prosty przypadek tego, co chciałbym zrozumieć. $ cat <( sleep 100 & wait ) & [1] 14247 $ ps ax -O pgid | grep $$ 12126 12126 S pts/17 00:00:00 bash 14248 12126 S pts/17 00:00:00 bash …
Mam wiele zdefiniowanych funkcji .bashrc, które mają być interaktywnie używane w terminalu. Zazwyczaj poprzedzałem je komentarzem opisującym jego zamierzone użycie: # Usage: foo [bar] # Foo's a bar into a baz foo() { ... } Jest to dobre, jeśli przeglądasz kod źródłowy, ale dobrze jest uruchomić typew terminalu, aby szybko …
W moim projekcie mam następujący fragment kodu: local output="$(bash "${1##*/}")" echo "$?" To zawsze wypisuje zero local, ponieważ usunięcie localpowoduje jednak, że $?zmienna zachowuje się poprawnie: co oznacza przyjęcie kodu wyjścia z podpowłoki. Moje pytanie brzmi: jak mogę zachować tę zmienną lokalnie, jednocześnie rejestrując wartość wyjściową?
Stéphane Chazelas napisał: kilka zasad takich jak zawsze podawaj zmienne Nigdy nie używać -aalbo -ooperatora (użyć kilku [poleceń oraz &&i ||powłoki operatorzy) Bądź [niezawodny dzięki powłokom POSIX. Dlaczego „nigdy nie należy używać operatora -alub -o”? Jak mogę zrobić „używać kilku [poleceń oraz operatorów powłoki &&i ||”)?
Idealnie chciałbym takie polecenie rm --only-if-symlink link-to-file ponieważ spaliłem się zbyt wiele razy przypadkowo usuwając plik zamiast dowiązania symbolicznego wskazującego na plik. Może to być szczególnie złe, gdy zaangażowane jest sudo. Teraz oczywiście robię to, ls -alaby upewnić się, że naprawdę jest to dowiązanie symboliczne i takie, ale jest podatne …
Jak wydrukować wartości liczbowe ASCII każdego znaku w pliku tekstowym. Podobnie cat, ale pokazuje tylko wartości ASCII ... (szesnastkowy lub dziesiętny jest w porządku). Przykładowe dane wyjściowe dla pliku zawierającego słowo Apple (z wierszem) mogą wyglądać następująco: 065 112 112 108 101 013 004
Jak poniżej polecenia, if true; then IFS=":" read a b c d e f <<< "$test" Książka mówi, że gdy polecenie przypisania wartości ( IFS ":") jest używane przed poleceniem głównym ( read a b c d e f <<< "$value"), jego wartość obowiązuje tymczasowo dla polecenia głównego. Tak więc …
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 właściwości? POSIX ma …
Zastanawiam się, dlaczego to nie działa #!/bin/bash ls /bin ls !$ Spodziewam się uruchomić ls /bindwa razy, ale drugi powoduje błędy, których !$nie interpretowano Coś przeoczyłem lub !$pracowałem tylko w linii poleceń? Nie mogłem znaleźć odpowiedniej części w man bash(na Macu)
Aby odczytać z deskryptora pliku 6, mogę użyć <&6lub </dev/fd/6(aka /proc/self/fd/6). Zwykle oba działają równie dobrze. Jednak jeśli deskryptorem pliku jest gniazdo, zdarzają się dziwne rzeczy. Na przykład: $ bash -c 'ls -l /dev/fd/6;cat /dev/fd/6' 6</dev/tcp/localhost/12345 lrwx------ 1 michas michas 64 Jan 10 19:50 /dev/fd/6 -> socket:[315010] cat: /dev/fd/6: No …
Jak utworzyć alias, który faktycznie rozszerza inny alias o tej samej nazwie w Bash? Dlaczego: Kiedyś GREP_OPTIONSustawiłem na .bashrccoś takiego: GREP_OPTIONS="-I --exclude=\*~" Miałem też skrypt (powiedzmy, że setup-java.sh), który zadzwoniłbym przed pracą nad niektórymi projektami Java. Zawierałby wiersz: GREP_OPTIONS="$GREP_OPTIONS --exclude-dir=classes" Gdybym również używał Sassa, zadzwoniłbym, setup-sass.shktóry zawiera wiersz: GREP_OPTIONS="$GREP_OPTIONS --exclude-dir=\*/.sass-cache" …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.