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.
Jest to podobne pytanie , które zajmuje się „owijania” scenariusza, w którym chcesz zastąpić na przykład cdz poleceniem, która wywołuje polecenie wbudowane cd. Jednak w świetle shellshocka i innych oraz wiedząc, że bash importuje funkcje ze środowiska, przeprowadziłem kilka testów i nie mogę znaleźć sposobu, aby bezpiecznie wywołać wbudowaną wersję …
Ponieważ ten błąd dotyczy tak wielu platform, możemy dowiedzieć się czegoś z procesu, w którym wykryto tę lukę: czy był to moment εὕρηκα (eureka) czy wynik kontroli bezpieczeństwa? Ponieważ wiemy, że Stéphane znalazł błąd Shellshock, a inni mogą również znać ten proces, bylibyśmy zainteresowani historią, w jaki sposób znalazł błąd.
Dobra, kiedy uruchamiam niektóre polecenia w niewłaściwy sposób (błędnie napisane itp.) Terminal wysyła to: >zamiast computername:workingfolder username$, a kiedy piszę, wpisuje się następująco: > > > Tak byłoby, gdybym nacisnął klawisz Enter 3 razy.
Pracuję z dużą liczbą plików, które trzymam w katalogu. Za każdym razem Tab, gdy wchodzę do tego katalogu i przez przypadkowe dwukrotne naciśnięcie , wyświetlenie plików pasujących do wzorca trwa zbyt długo (może to potrwać ponad minutę), a ja jestem zirytowany tym zachowaniem. Na przykład moja struktura katalogów to: my-project/ …
Jeśli to zrobię sudo cp /etc/foo.txt ~/foo.txt, nowy plik zostanie utworzony rootjako właściciel. W tej chwili nie widzę innego rozwiązania niż użycie dwóch ostatnich poleceń (w lscelu wyjaśnienia przypadku użycia): belmin@server1$ ls /etc/foo.txt > -rw------- 1 root root 3848 Mar 6 20:35 /etc/foo.txt > belmin@server1$ sudo cp /etc/foo.txt ~/foo.txt belmin@server1$ …
Chcę dynamicznie przypisywać wartości do zmiennych za pomocą eval. Działa następujący przykładowy manekin: var_name="fruit" var_value="orange" eval $(echo $var_name=$var_value) echo $fruit orange Jednak gdy wartość zmiennej zawiera spacje, evalzwraca błąd, nawet jeśli $var_valuejest wstawiany między podwójnymi cudzysłowami: var_name="fruit" var_value="blue orange" eval $(echo $var_name="$var_value") bash: orange : command not found Jest jakiś …
Utknąłem z dziwnym zachowaniem readarraydowodzenia. Te man bashstany: readarray Read lines from the standard input into the indexed array variable array ale te skrypty nie działają (tablica jest pusta): unset arr; (echo a; echo b; echo c) | readarray arr; echo ${#arr[@]} unset arr; cat /etc/passwd | readarray arr; echo …
Chciałbym się upewnić, że w pewnym momencie skryptu, po sourcewczytaniu pliku konfiguracyjnego, ustawionych jest kilka zmiennych, a jeśli tak nie jest, zatrzymanie wykonywania, informowanie użytkownika o brakującej zmiennej. próbowałem for var in $one $two $three ; do ... ale jeśli na przykład $twonie jest ustawiony, pętla nigdy nie zostanie wykonana …
Natknąłem się na sekwencje bash, takie jak \033[999Di, \033[2K\rktóre służą do pewnych manipulacji na wydruku na terminalu. Ale co oznaczają te sekwencje? Gdzie mogę znaleźć listę / podsumowanie w Internecie, aby pomóc mi znaleźć znaczenie tych sekwencji?
Dla uproszczenia chciałbym zrobić: echo cart | assign spo; echo $spo Wyjście: koszyk Czy taka assignaplikacja istnieje? Jestem świadomy wszystkich sposobów, aby to zrobić za pomocą substytucji.
Pochodząc ze świata FreeBSD, chcę, aby terminal Linuksa zachowywał się jak FreeBSD, szczególnie wersja 9.1, w zasadzie po wpisaniu cdterminala i naciśnięciu strzałki „w górę” możesz przeglądać wszystkie polecenia w historii, od cdktórych zaczyna się zyskać dużo czasu. Nie wiem, jak włączyć tę funkcję w Linuksie Debian lub CentOS, która …
Używam rsyncdo kopiowania niektórych plików z udziału do innego. Rekurencyjnie muszę: Usuń pliki docelowe, które zostały usunięte z źródła Tylko synchronizacja .phpi .jspliki Wyklucz każdy inny typ pliku Nie usuwaj .svn/katalogów w miejscu docelowym Jeśli użyję tego: rsync -zavC --delete --include='*.php' --include='*.js' --exclude="*" \ /origin /destination To rsyncnie jest rekurencyjne, …
Wiem, że mogę czekać na spełnienie warunku bash, wykonując: while true; do test_condition && break sleep 1 done Ale tworzy 1 podproces przy każdej iteracji (uśpieniu). Mogłem ich uniknąć, wykonując: while true; do test_condition && break done Ale zużywa dużo procesora (zajęte oczekiwanie). Aby uniknąć podprocesów i zajętego czekaniem, wymyśliłem …
Mam skrypt bash, który ustawia -e, więc skrypt zakończy działanie w dowolnym stanie wyjścia! = 0. Próbuję wykonać podstawową arytmetykę powłoki przypisaną do zmiennych, a czasami wyrażenie jest równe 0, co powoduje, że stanem wyjścia komendy let lub expr jest „1”. Oto przykład: #!/bin/bash -ex echo "Test 1" Z=`expr 1 …
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.