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.
Zhakowałem razem ten skrypt bash, który sprawdza, czy użytkownik ma uprawnienia administratora, a jeśli nie, prosi o nie. W końcu próbuję odwrócić drugą instrukcję „if”, aby móc usunąć następujące dwie linie (echo „hasło ok” i pozostałe w kolejnej linii) # Root user only if [[ "$EUID" != 0 ]]; then …
Bash używa wykrzykników do rozszerzeń historii, jak wyjaśniono w odpowiedziach na to pytanie (np. sudo !!Uruchamia poprzedni wiersz poleceń sudo). Jednak nie mogę znaleźć nigdzie, co wyjaśnia, co robi następujące polecenie (np. Pojedynczy wykrzyknik): ! Wygląda na to, że nic nie drukuje i wychodzi z 1, ale nie jestem pewien, …
Załóżmy, że mam następujący trywialny przykład history: ... 76 cd ~ 77 ./generator.sh out.file 78 cp out.file ~/out/ 79 ./out/cleaner.sh . 80 ls -alnh /out ... Jeśli chciałbym wykonywać polecenia 77, 78i 79w jednym poleceniu, czy istnieje do tego skrót? Próbowałem !77 !78 !79, który po prostu umieści je wszystkie …
Jeśli chcesz przekierować stdout i stderr do tego samego pliku, możesz to zrobić za pomocą command 1>file.txt 2>&1, lub command &>file.txt. Ale dlaczego zachowanie command 1>file.txt 2>file.txtróżni się od powyższych dwóch poleceń? Poniżej znajduje się polecenie weryfikacji. $ cat redirect.sh #!/bin/bash { echo -e "output\noutput" && echo -e "error" 1>&2; …
Próbuję napisać skrypt bash, który odpytuje btmon w poszukiwaniu połączeń urządzeń. Mam działające rozwiązanie, ale jest absurdalnie wolne i wydaje się, że problem polega na tym, że grep bardzo powoli wychodzi z gry po znalezieniu dopasowania (około 25 sekund). Co mogę zrobić, aby przyspieszyć greplub całkowicie go nie używać? #!/bin/bash …
Mam na przykład funkcję bash (lub alias) function install() {sudo apt-get install $@}. Podczas uruchamiania polecenia install dicelab, to, czego się spodziewałem, zostanie uruchomione sudo apt-get install dicelab. Gdzie mogę zobaczyć, co faktycznie uruchomiła powłoka? Chciałbym się upewnić, że moje bardziej skomplikowane aliasy działają zgodnie z oczekiwaniami.
Używanie evaljest często odradzane, ponieważ pozwala na wykonanie dowolnego kodu. Jeśli jednak użyjemy eval echo, wygląda na to, że reszta ciągu stanie się argumentem, echowięc powinno być bezpieczne. Czy mam rację?
StackOverflow odpowiedź z> 3.5K głosów dysponuje ten jeden-liner przypisywania do DIRkatalogu bieżącego skryptu bash: DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" Zaskakują mnie zagnieżdżone podwójne cudzysłowy. O ile wiem, następujące fragmenty są cytowane: "$( cd " "${BASH_SOURCE[0]}" " && pwd )" ... i wszystko inne po prawej stronie …
Wczoraj wydałem wiele poleceń w moim CentOS 7. Ale kiedy chciałem dzisiaj odzyskać te polecenia, stwierdziłem, że nie było żadnego rekordu. Kiedy otworzyłem plik .bash_history, nadal nie mogłem znaleźć poleceń, które wydałem wczoraj, ale wiele starych poleceń znalazłem kilka dni temu. Dlaczego ostatnie polecenia nie zostały zapisane? Jak mogę zwiększyć …
Chciałbym uruchomić polecenie foo --bar=baz <16 zeroes> Jak efektywnie wpisać 16 zer *? Jeśli przytrzymam Alti wcisnę 1 6 0, powtórzy to 160 razy, co nie jest tym, czego chcę. W emacsie mogę użyć Alt-[number]albo Ctrl-u 1 6 Ctrl-u 0, ale w bash Ctrl-uzabija aktualnie pisaną linię, a następne zero …
Chciałem napisać małą funkcję bash, tak że mogę powiedzieć bash, import osalbo from sys import stdoutspowoduje to pojawienie się nowego interpretera Pythona z zaimportowanym modułem. Ta ostatnia fromfunkcja wygląda następująco: from () { echo "from $@" | xxd python3 -i -c "from $@" } Jeśli nazywam to: $ from sys …
Skopiowałem fragment Basha do tła polecenia ssh wykonanego zdalnie: ssh user@remote <<CMD some process <&- >log 2>error & CMD Co ma <&-zrobić? Domyślam się, że to to samo co< /dev/null Mój następny zrozumienie jest, że trzy główne deskryptory plików ( stdin, stdout, stderr) muszą być zamknięte, aby zapobiec: Zadanie jest …
Używam bash na Linuksie. Odnoszę sukces z następujących instrukcji if, ale czy to nie powinno zwrócić kodu błędu? if [[ ■ = [⅕⅖⅗] ]] ; then echo yes ; fi Kwadrat NIE jest równy żadnemu ze znaków, więc nie rozumiem, dlaczego dostaję kod sukcesu. Ważne jest dla mnie zachowanie podwójnych …
Niektóre przypadki bash zmieniają historię poleceń, kiedy ponownie używasz i edytujesz poprzednie polecenie, inne najwyraźniej nie. Szukałem i szukałem, ale nie mogę znaleźć niczego, co mówi, jak zapobiec modyfikowaniu poleceń w historii, gdy są one ponownie używane i edytowane. Są to pytania, takie jak ten , ale to zdaje się …
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.