Pytania oznaczone «shell-script»

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

248
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...

220
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...

166
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...

120
Kiedy konieczne jest podwójne cytowanie?

Dawna rada polegała na podwójnym cytowaniu dowolnego wyrażenia obejmującego $VARIABLE, przynajmniej jeśli ktoś chciałby, aby był interpretowany przez powłokę jako pojedynczy element, w przeciwnym razie wszelkie spacje w treści $VARIABLEzrzucałyby powłokę. Rozumiem jednak, że w nowszych wersjach...

118
Jaki jest cel używania shift w skryptach powłoki?

Natknąłem się na ten skrypt: #! /bin/bash if (( $# < 3 )); then echo "$0 old_string new_string file [file...]" exit 0 else ostr="$1"; shift nstr="$1"; shift fi echo "Replacing \"$ostr\" with \"$nstr\"" for file in $@; do if [ -f $file ]; then echo "Working with: $file" eval "sed...