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.
Mam skrypt mierzący czas wykonywania niektórych poleceń. Potrzebuje polecenia „rzeczywistego” time, czyli binarnego na przykład w /usr/bin/time(ponieważ wbudowany bash nie ma -fflagi). Poniżej uproszczony skrypt, który można debugować: #!/bin/bash TIMESEC=$(echo blah | ( /usr/bin/time -f %e grep blah >/dev/null ) 2>&1 | awk -F. '{print $1}') echo ABC--$TIMESEC--DEF if [ …
Mam skrypt bash, który używa, set -o errexitwięc po błędzie cały skrypt kończy się w momencie awarii. Skrypt uruchamia curlpolecenie, które czasami nie może pobrać zamierzonego pliku - jednak gdy to nastąpi, skrypt nie kończy błędu. Dodałem forpętlę do zatrzymaj się na kilka sekund, a następnie ponów curlkomendę użyj falsena …
Po wpisaniu znaków kontrolnych w powłoce są one wyświetlane przy użyciu tak zwanej „notacji karetki”. Na przykład Escape jest zapisywane ^[w notacji karetki. Lubię dostosowywać moją powłokę bash, aby wyglądała fajnie. Na przykład zmieniłem moje PS1i zostałem PS2pokolorowany. Chcę teraz, aby postacie kontrolne również zyskały niepowtarzalny wygląd, aby były bardziej …
Chcę wykonać datepolecenie z ładnym formatowaniem, takie jak to: $ date +"%Y-%m-%d %H:%M:%S" 2015-09-17 16:51:58 Ale chcę zapisać to w zmiennej, aby móc wywoływać ze skryptu w następujący sposób: echo "$(nice_date) [WARNING] etc etc" Jednak to nie działa $ nice_date="date +%Y-%m-%d %H:%M:%S" $ echo "$($nice_date)" date: extra operand ‘%H:%M:%S’ Try …
Dane 1 \begin{document} 3 Kod #!/bin/bash function getStart { local START="$(awk '/begin\{document\}/{ print NR; exit }' data.tex)" echo $START } START2=$(getStart) echo $START2 która wraca, 2ale chcę 3. Bezskutecznie zmieniam koniec odpowiedzią dotyczącą tego, jak mogę dodawać liczby w skrypcie bash : START2=$((getStart+1)) Jak można zwiększyć lokalną zmienną w skrypcie …
W poniższym poleceniu cat pobiera zawartość here-doc i przekierowuje ją do pliku o nazwie conf: cat > conf << EOF var1="cat" var2="dog" var3="hamster" EOF Jak zrozumieć kolejność poleceń tutaj? Czy bashnajpierw przetwarza wszystko inne (część doc tutaj) i jako ostatni krok wygląda na > confczęść?
Nacisnąłem ~TabTabwiersz polecenia bash i otrzymałem nieoczekiwany zestaw uzupełnień. Najpierw wyglądało to tak, jak wszyscy ludzie w /Userskatalogu i wiele więcej. Potem pomyślałem, że robi to odwrotnie, szukając ludzi z „domowymi” katalogami /etc/password, a może tymi, które były /var/empty- wydaje się to słuszne. Ciekawe, co się naprawdę dzieje i dlaczego …
„Standardowy” fragment blokujący, który widziałem, wygląda mniej więcej tak ... ( flock -n 200 || exit 1; # do stuff ) 200>program.lock Czy korzystanie z niego execw tym momencie jest bezpieczne (wydaje się, że testy tak mówią) ? Czy podproces zachowa blokadę? ( flock -n 200 || exit 1; exec …
Mam dwie otwarte muszle. Pierwszy znajduje się w katalogu A. W drugim usuwam katalog A, a następnie tworzę go ponownie. Kiedy wracam do pierwszej powłoki i piszę ls, dane wyjściowe są następujące: ls: cannot open directory .: Stale file handle Dlaczego? Myślałem, że pierwsza powłoka (ta, która pozostała otwarta w …
$ uname -a Linux 3.13.0-29-generic # 53-Ubuntu SMP Środa 4 czerwca 21:00:20 UTC 2014 x86_64 x86_64 x86_64 GNU / Linux Uruchamianie ubuntu 12.04.1 LTS. Dlaczego ma x86_64trzykrotnie wymienioną architekturę ( )?
Jak mogę użyć zmiennej - $BASEna mojej płycie CD. Próbowałem następujące, ale pojawia się błąd $ cd ~/z/repo_1_ruby_193/ 23:23:57 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193 $ BASE="~/z" 23:24:03 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193 $ cd $BASE/repo_1_ruby_193 -bash: cd: ~/z/repo_1_ruby_193: No such file or directory 23:24:25 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193
Chciałbym powiedzieć, czy ciąg $stringpasowałby do wzorca globu $pattern. $stringmoże, ale nie musi, być nazwą istniejącego pliku. W jaki sposób mogę to zrobić? Przyjmij następujące formaty dla moich ciągów wejściowych: string="/foo/bar" pattern1="/foo/*" pattern2="/foo/{bar,baz}" Chciałbym znaleźć idiom bash, który określa, czy $stringbędzie dopasowane $pattern1, $pattern2lub jakiegokolwiek innego arbitralnego glob wzorca. Oto, …
Mam 3 katalogi na bieżącej ścieżce. $ls a_0db_data a_clean_0db_data a_clean_data $ls a_*_data a_0db_data: a_clean_0db_data: a_clean_data: $ls a_[a-z]*_data a_clean_0db_data: a_clean_data: Spodziewałem się, że ostatnie polecenie ls będzie pasować tylko a_clean_data. Dlaczego pasuje również do tego, który zawiera 0? bash --version GNU bash, version 4.2.24(1)-release (i686-pc-linux-gnu)
Następująca linia jest oczywista: echo "bla" | foo | bar Ale czy te poniżej robią to samo? echo "bla" | bar <(foo) echo "bla" | bar < <(foo) Które z fooi barprzeczytałem „bla” ze standardowego wejścia i dlaczego? Mam na myśli, że oczywiście mogę po prostu kodować i sprawdzać, ale …
W bash, automatyczne uzupełnianie ścieżek ostatnio przestało działać podczas wydawania vimpoleceń, w których ścieżka jest głębsza niż dwa katalogi (nadal działa zgodnie z oczekiwaniami z innymi poleceniami, takimi jak lsi cd). Na przykład, jeśli piszę, ls .config/btsync/bta następnie wciskam TAB, rozwija się do ls .config/btsync/btsync.conf. Jeśli piszę, vim .config/bta następnie …
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.