Pytania otagowane jako shell-script

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

3
Nawiasy w warunku if: dlaczego dostaję błędy składniowe bez białych znaków?
Korzystam z poniższego skryptu, aby przejść dwa dni wstecz, gdy skrypt uruchamia się o dwa dni w roku, a także sprawdzam pierwszy i drugi dzień każdego miesiąca i cofam się o dwa dni wstecz. if [$month="01"] && [$day="01"]; then date="$last_month/$yes_day/$last_year" fulldate="$last_month/$yes_day/$last_year" else if [$month="01"] && [$day="02"]; then date="$last_month/$yes_day/$last_year" fulldate="$last_month/$yes_day/$last_year" else …



3
jak usunąć ostatni ukośnik ścieżki katalogu?
Mam skrypt, który wymaga katalogu jako jednego argumentu. Chcę wesprzeć dwie formy: jedna jest jak a/b/c (bez slash na końcu), a inny jest jak a/b/c/ (ma slash na końcu). Moje pytanie: biorąc pod uwagę którąkolwiek z dwóch form, jak mogę po prostu zachować pierwszą formę bez zmian i usunąć ostatni …

3
pozyskiwanie skryptu Bash - Return on Error, zamiast Exit?
Korzystam ze skryptu bash w terminalu , więc wychodzę z błędu set -o errexit zabija mój terminal, co jest niesamowicie denerwujące, ponieważ muszę zamknąć terminal, otworzyć inny i zresetować niektóre zmienne. Do tej pory za pomocą command || return wiersze w skrypcie robią dokładnie to, co chcę set -o errexit …



6
Wybierz interpreter po uruchomieniu skryptu, np. If / else wewnątrz hashbang
Czy istnieje sposób na dynamiczne wybranie interpretera wykonującego skrypt? Mam skrypt, który uruchamiam na dwóch różnych systemach, a tłumacz, którego chcę użyć, znajduje się w różnych lokalizacjach na dwóch systemach. Ostatecznie muszę zmienić linię hashbang za każdym razem, gdy się przełączam. Chciałbym zrobić coś, co jest logicznym odpowiednikiem tego (zdaję …

1
Usuń ciszę z plików audio, pozostawiając luki
Obecnie używamy tego polecenia w skrypcie powłoki, aby usunąć ciszę z plików audio: ffmpeg -i $INFILE -af silenceremove=0:0:0:-1:1:${NOISE_TOLERANCE}dB -ac 1 $SILENCED_FILE -y Działa to dobrze, ale usuwa całą ciszę, powodując ściśnięcie pozostałego dźwięku. Jak można to zrobić, pozostawiając dwie lub trzy sekundy między poszczególnymi utworami? Rozwiązanie musi być bardzo wydajne, …


5
Szybkie kompresowanie dużej liczby dużych plików
Codziennie generuję około 200 GB danych dziennika, rozmieszczonych w około 150 różnych plikach dziennika. Mam skrypt, który przenosi pliki do tymczasowej lokalizacji i wykonuje tar-bz2 w katalogu tymczasowym. Otrzymuję dobre wyniki, ponieważ dzienniki 200 GB są skompresowane do około 12-15 GB. Problem polega na tym, że kompresja plików trwa wieczność. …


4
porównaj dwie kolumny różnych plików i wydrukuj, jeśli pasuje
Używam Solaris 10, więc opcje grep obejmujące -f nie działają. Mam dwa pliki oddzielone potokami: plik1: abc|123|BNY|apple| cab|234|cyx|orange| def|kumar|pki|bird| plik 2: abc|123| kumar|pki| cab|234 Chciałbym porównać dwie pierwsze kolumny pliku 2 z plikiem 1 (przeszukaj całą zawartość pliku 1 w pierwszych dwóch kolumnach), jeśli pasują, wydrukuj dopasowaną linię pliku 1. …

4
Niech ssh-add będzie cichy, jeśli klucz już tam jest
Chcę umieścić ssh-add /path/to/special_keyna górze skryptu. Działa to dobrze, ale zawsze monituje o podanie hasła. Jest to dziwne i trochę denerwujące, ponieważ wciąż prosi o hasło, nawet jeśli ssh-add -lpokazuje, że klucz został już dodany. Czy istnieje sposób, aby to powiedzieć: „dodaj ten klucz i zapytaj hasło, jeśli jeszcze nie …

5
Stanowa funkcja bash
Chciałbym zaimplementować funkcję w Bash, która zwiększa (i zwraca) liczbę przy każdym wywołaniu. Niestety wydaje się to nietrywialne, ponieważ wywołuję funkcję wewnątrz podpowłoki, w związku z czym nie może ona modyfikować zmiennych powłoki nadrzędnej. Oto moja próba: PS_COUNT=0 ps_count_inc() { let PS_COUNT=PS_COUNT+1 echo $PS_COUNT } ps_count_reset() { let PS_COUNT=0 } …

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.