Pytania dotyczące użycia funkcji w kontekście systemów Unix i Linux (głównie, ale nie wyłącznie, skrypty powłoki). Pytania dotyczące programowania w Pythonie, Perlu, Ruby itp. Należy zadawać przy przepełnieniu stosu.
Zadanie tego pytania zajęło mi prawie 10 lat użytkowania Linuksa. To wszystko było próbą i błędem oraz losowym surfowaniem po Internecie w późnych godzinach nocnych. Ale ludzie nie powinni potrzebować na to 10 lat. Gdybym dopiero zaczynał od Linuksa, chciałbym wiedzieć: kiedy do aliasu, kiedy do skryptu, a kiedy do …
Wiem, że skrypty powłoki uruchamiają polecenia tak, jakby były wykonywane w wierszu polecenia. Chciałbym móc uruchamiać skrypty powłoki tak, jakby były funkcjami ... To znaczy, biorąc wartość wejściową lub ciąg znaków do skryptu. Jak podejść do tego?
Potrafię zdefiniować bashfunkcje za pomocą lub pominięcia functionsłowa kluczowego. Czy jest jakaś różnica? #!/bin/bash function foo() { echo "foo" } bar() { echo "bar" } foo bar Oba wywołania funkcji fooi barodnieść sukces i nie widzę żadnej różnicy. Zastanawiam się więc, czy chodzi tylko o poprawę czytelności, czy czegoś mi …
source some_file jakiś plik: doit () { echo doit $1 } export TEST=true Jeśli podam jakiś plik, funkcja „doit” i zmienna TEST są dostępne w wierszu poleceń. Ale uruchomienie tego skryptu: script.sh: #/bin/sh echo $TEST doit test2 Zwróci wartość TEST, ale wygeneruje błąd dotyczący nieznanej funkcji „doit”. Czy mogę również …
W pracy często piszę skrypty bash. Mój przełożony zasugerował, aby cały skrypt był podzielony na funkcje, podobnie jak w poniższym przykładzie: #!/bin/bash # Configure variables declare_variables() { noun=geese count=three } # Announce something i_am_foo() { echo "I am foo" sleep 0.5 echo "hear me roar!" } # Tell a joke …
Kiedy definiuję nowy alias w .bash_aliasespliku lub nową funkcję w .bashrcpliku, czy jest jakieś polecenie odświeżające, aby móc natychmiast użyć nowych aliasów lub funkcji bez zamykania terminala (w moim przypadku xfce4-terminal z kilkoma otwartymi kartami, wiele plików otwartych i w środku pracy)?
Jakie są minimalne i maksymalne wartości następujących kodów wyjścia w systemie Linux: Kod wyjścia zwrócony z binarnego pliku wykonywalnego (na przykład: program w języku C). Kod wyjścia zwrócony ze skryptu bash (podczas wywoływania exit). Kod wyjścia zwrócony z funkcji (podczas wywoływania return). Myślę, że to jest pomiędzy 0i 255.
Czasami muszę podzielić jedną liczbę na drugą. Byłoby wspaniale, gdybym mógł po prostu zdefiniować funkcję bash. Do tej pory jestem zmuszony używać takich wyrażeń jak echo 'scale=25;65320/670' | bc ale byłoby świetnie, gdybym mógł zdefiniować funkcję .bashrc, która wyglądałaby divide () { bc -d $1 / $2 }
Po przeczytaniu 24.2. Zmienne lokalne , pomyślałem, że zadeklarowanie zmiennej varze słowem kluczowym localoznacza, że varwartość jest dostępna tylko w bloku kodu ograniczonym nawiasami klamrowymi funkcji. Jednak po uruchomieniu następujący przykład, okazało się, że varmożna również uzyskać, odczytywane i zapisywane z funkcji powołuje tego bloku kodu - czyli choć vardeklaruje …
W Advanced Bash-Scripting Guide , w przykładzie 27-4 , 7-ta linia od dołu przeczytałem: Funkcja działa jako podproces. Zrobiłem test w Bash i wydaje się, że powyższe stwierdzenie jest błędne. Wyszukiwania w tej witrynie, Bash Man i moja wyszukiwarka nie przynoszą żadnego światła. Czy znasz odpowiedź i chciałbyś wyjaśnić?
Gdzie indziej widziałem funkcję cd, jak poniżej: cd() { builtin cd "$@" } dlaczego zaleca się używać $@zamiast $1? Utworzyłem katalog testowy „r st” i wywołałem skrypt zawierający tę funkcję i działał on w obie strony $ . cdtest.sh "r st" ale $ . cdtest.sh r stzawiodło, czy użyłem "$@"czy"$1"
Korzystam z systemu Solaris 10 i przetestowałem następujące opcje z ksh (88), bash (3.00) i zsh (4.2.1). Poniższy kod nie daje żadnego wyniku: function foo { echo "Hello World" } find somedir -exec foo \; Znalezisko pasuje kilka plików (jak pokazano poprzez zastąpienie -exec ...z -print), a funkcja działa idealnie, …
Więc zacząłem używać zsh. Wszystko mi się podoba. Wygląda to bardzo fajnie i płynnie, a fakt, że bieżący katalog roboczy i wiersz poleceń znajdują się w różnych wierszach, jest przyjemny, ale jednocześnie zauważam, że zshmoże to być nieco wolniejsze niż bash, szczególnie podczas drukowania tekstu na ekran. Najbardziej podobało mi …
Mam funkcję, która konwertuje czas epoki do tej pory. Oto definicja date1(){ date -d @$1 } Chciałbym móc pisać: $ date1 xxxyyy Gdzie xxxyyy to parametr, który przekazuję do mojej funkcji, aby uzyskać odpowiednią datę. Rozumiem, że trzeba dodać go albo .bash_profile, .profilelub .bashrc, a następnie pozyskać go: $ source …
Mam skrypt, który wykonuje wiele różnych czynności, z których większość nie wymaga żadnych specjalnych uprawnień. Jednak jedna konkretna sekcja, którą zawarłem w ramach funkcji, wymaga uprawnień roota. Nie chcę wymagać, aby cały skrypt działał jako root i chcę móc wywoływać tę funkcję z uprawnieniami roota z poziomu skryptu. Żądanie hasła …
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.