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.
Próbuję utworzyć raportowanie błędów za pomocą pułapki w celu wywołania funkcji dla wszystkich błędów: Trap "_func" ERR Czy można uzyskać informację, z której linii wysłano sygnał ERR? Powłoka to bash. Jeśli to zrobię, mogę odczytać i zgłosić, które polecenie zostało użyte, i zarejestrować / wykonać niektóre działania. A może źle …
Używam od tcshdłuższego czasu. Ale gdy czegoś szukam, często okazuje się, że określone metody są bashspecyficzne. Nawet składnia skryptów powłoki jest różna dla obu. Z tego, czego doświadczyłem, szukając i ucząc się w Internecie, bashwydaje się , że jest to najczęściej używana powłoka. Nawet liczba otagowanych pytań na tej stronie …
Piszę skrypt powłoki dla systemu Linux, używając Bash, aby przetłumaczyć dowolny plik wideo na MP4. Do tego używam avconvz libvorbisdźwiękiem. Wewnątrz mojego skryptu mam pytanie do użytkownika: read -p "- Audio Quality [scale from -2 to 10] ? " if [ -n "$REPLY" ] ; then ABITRATE="-aq $REPLY" fi Mój …
Ten skrypt nie echa „po”: #!/bin/bash -e echo "before" echo "anything" | grep e # it would if I searched for 'y' instead echo "after" exit Byłoby tak również, gdybym usunął -eopcję z linii shebang, ale chcę ją zachować, aby mój skrypt zatrzymał się w przypadku wystąpienia błędu. Nie uważam, …
Przewodnik instalacyjny dla ack sugeruje instalację skryptu ack za pomocą tego polecenia: curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755 !#:3 Zakładam, że !#:3na końcu jest jakiś odnośnik, ale co to znaczy? Czy istnieje odpowiednik w Zsh? Google nie był pomocny.
Testowałem szybkość Basha i Pythona, uruchamiając pętlę 1 miliard razy. $ cat python.py #!/bin/python # python v3.5 i=0; while i<=1000000000: i=i+1; Kod Bash: $ cat bash2.sh #!/bin/bash # bash v4.3 i=0 while [[ $i -le 1000000000 ]] do let i++ done Za pomocą timepolecenia dowiedziałem się, że kod Pythona zajmuje …
Czasami podstawienie procesu nie będzie działać zgodnie z oczekiwaniami. Oto przykład: Wkład: gcc <(echo 'int main(){return 0;}') Wydajność: /dev/fd/63: file not recognized: Illegal seek collect2: error: ld returned 1 exit status Wkład: Ale działa zgodnie z oczekiwaniami, gdy jest używany z innym poleceniem: grep main <(echo 'int main(){return 0;}') Wydajność: …
Mam długo działającą bashinstancję (wewnątrz screensesji), która wykonuje złożony zestaw poleceń w pętli (każda pętla wykonuje potoki, przekierowania itp.). Długa linia poleceń została napisana wewnątrz terminala - nie ma jej w żadnym skrypcie. Teraz znam identyfikator procesu bash i mam dostęp do konta root - jak mogę zobaczyć, jaki dokładnie …
Mam aplikację, która wygeneruje dużą ilość danych, których nie chcę przechowywać na dysku. Aplikacja generuje głównie dane, których nie chcę używać, ale zestaw przydatnych informacji, które należy podzielić na osobne pliki. Na przykład biorąc pod uwagę następujące dane wyjściowe: JUNK JUNK JUNK JUNK A 1 JUNK B 5 C 1 …
Próbuję zrobić coś takiego: case $level in 3) echo "Level Three" 2) echo "Level Two" 1) echo "Level one" ;; esac gdzie jeśli $ poziom = 3, wynik byłby wyprowadzony Level Three Level Two Level One podczas gdy jeśli poziom $ = 1, to wypisuje tylko Level One Ale kiedy …
Chciałbym uruchomić coś takiego: bash -c "some_program with its arguments" ale żeby mieć interaktywny bash, działaj po some_programzakończeniu. Na pewno -cnie jest to dobry sposób, jak się man bashwydaje: Powłoka interaktywna to taka, która została uruchomiona bez argumentów niebędących opcjami i bez opcji -c Jak to zrobić? Główny cel opisano …
Większość moich aliasów ma tę postać: alias p='pwd' Chcę alias git commit, aby to zrobiłgit commit -v Ale próba utworzenia aliasu ze spacją powoduje błąd: $ alias 'git commit'='git commit -v' -bash: alias: `git commit': invalid alias name
Kiedy uruchamiam analizy przy użyciu powłoki bash, często chcę zapisać używane polecenia, które dały mi dobre wyniki, do pliku w tym samym katalogu (jak to się nazywa „LOGBOOK”), aby móc sprawdzić, co Zrobiłem, aby uzyskać te wyniki. Do tej pory oznaczało to, że albo kopiuję. Wklejam polecenie z terminala, albo …
Rozważać echo \ # this is a comment foo To daje: $ sh foo.sh # this is a comment foo.sh: line 2: foo: command not found Po kilku poszukiwaniach w Internecie znalazłem rozwiązanie firmy DigitalRoss na siostrzanej stronie Stack Overflow. Więc można to zrobić echo `: this is a comment` …
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.