Zauważam, że niektóre skrypty, które nabyłem od innych, mają shebang, #!/path/to/NAMEpodczas gdy inne (używając tego samego narzędzia, NAME) mają shebang #!/usr/bin/env NAME. Oba wydają się działać poprawnie. W samouczkach (na przykład w języku Python) wydaje się, że istnieje sugestia, że ten ostatni shebang jest lepszy. Ale nie do końca rozumiem, …
Patrzyłem na kilka skryptów, które napisali inni ludzie (szczególnie Red Hat), a wiele ich zmiennych przypisuje się za pomocą poniższej notacji VARIABLE1="${VARIABLE1:-some_val}" lub niektóre rozwijają inne zmienne VARIABLE2="${VARIABLE2:-`echo $VARIABLE1`}" Po co używać tej notacji zamiast po prostu deklarować wartości bezpośrednio (np. VARIABLE1=some_val)? Czy są jakieś zalety tej notacji lub możliwe …
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 …
Lub przewodnik wprowadzający do solidnej obsługi nazw plików i innych ciągów znaków przekazywanych w skryptach powłoki. Napisałem skrypt powłoki, który działa dobrze przez większość czasu. Ale dusi się na niektórych danych wejściowych (np. Na niektórych nazwach plików). Wystąpił problem, taki jak: Mam nazwę pliku zawierającą spację hello world, która została …
Potrzebuję znaleźć mój zewnętrzny adres IP ze skryptu powłoki. W tej chwili korzystam z tej funkcji: myip () { lwp-request -o text checkip.dyndns.org | awk '{ print $NF }' } Ale to zależy od tego perl-libwww, perl-html-format, perl-html-treezainstalowany. Jakie inne sposoby mogę uzyskać moje zewnętrzne IP?
Weź następujący skrypt: #!/bin/sh sed 's/(127\.0\.1\.1)\s/\1/' [some file] Jeśli spróbuję uruchomić to w sh( dashtutaj), to się nie powiedzie z powodu nawiasów, które należy uciec. Ale nie muszę uciekać przed odwrotnymi ukośnikami (między oktetami lub w \slub \1). Jaka jest tutaj reguła? A kiedy potrzebuję użyć {...}lub [...]? Czy jest …
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?
Poniższa składnia bash sprawdza, czy paramnie jest pusta: [[ ! -z $param ]] Na przykład: param="" [[ ! -z $param ]] && echo "I am not zero" Brak wyników i jest w porządku. Ale gdy paramjest pusty, z wyjątkiem jednego (lub więcej) znaków spacji, sprawa jest inna: param=" " # …
Znam trzy metody usuwania wszystkich wpisów z pliku. Oni są >filename touch filename filename < /dev/null Z tych trzech >filenamenajbardziej nadużywam, ponieważ wymaga to najmniejszej liczby naciśnięć klawiszy. Chciałbym jednak wiedzieć, która z nich jest najbardziej wydajna (jeśli istnieją bardziej wydajne metody) w odniesieniu do dużych plików dziennika i małych …
Jeśli od jakiegoś czasu obserwujesz unix.stackexchange.com, powinieneś wiedzieć, że pozostawienie zmiennej niecytowanej w kontekście listy (jak w echo $var) w powłokach Bourne / POSIX (wyjątek to zsh) ma bardzo szczególne znaczenie i nie należy tego robić, chyba że masz ku temu dobry powód. To omówiono obszernie w wielu Q & …
Chciałbym zmienić rozszerzenie pliku z *.txtna *.text. Próbowałem użyć basenamepolecenia, ale mam problem ze zmianą więcej niż jednego pliku. Oto mój kod: files=`ls -1 *.txt` for x in $files do mv $x "`basename $files .txt`.text" done Otrzymuję ten błąd: basename: too many arguments Try basename --help' for more information
Podczas uruchamiania skryptu chcę utworzyć plik tymczasowy w /tmpkatalogu. Po wykonaniu tego skryptu zostanie on wyczyszczony przez ten skrypt. Jak to zrobić w skrypcie powłoki?
Chciałbym usunąć wszystkie początkowe i końcowe spacje i tabulatory z każdego wiersza wyniku. Czy istnieje proste narzędzie, do trimktórego mógłbym przesłać dane wyjściowe? Przykładowy plik: test space at back test space at front TAB at end TAB at front sequence of some space in the middle some empty lines with …
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.