Pytania otagowane jako shell-script

Pytania dotyczące skryptów powłoki, plików wykonywalnych interpretowanych przez powłokę (bash, zsh itp.).

9
Dlaczego lepiej używać „#! / Usr / bin / env NAME” zamiast „#! / Path / to / NAME” jako mojego shebang?
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, …

3
Użycie „$ {a: -b}” do przypisania zmiennych w skryptach
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 …


5
Dlaczego mój skrypt powłoki dusi się spacjami lub innymi znakami specjalnymi?
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 …

23
Jak mogę uzyskać mój zewnętrzny adres IP w skrypcie powłoki?
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?
273 linux  shell-script  ip 

3
Jakie znaki muszę uciec, używając sed w skrypcie sh?
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 …



3
Opróżnij zawartość pliku
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 …



12
Jak zmienić rozszerzenie wielu plików?
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




Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.