Obecnie badam pakiety Debiana i czytam kilka przykładów kodu. Na przykład w każdym wierszu postinstskryptu jest wzorzec. some command || true another command || true Więc jeśli jakieś polecenie się nie powiedzie, wówczas linia zwraca true, ale nie widzę, jak wpływa to na wynik programu.
Jak napisać skrypt powłoki, który kończy działanie, jeśli jedna jego część zawiedzie? Na przykład jeśli poniższy fragment kodu nie powiedzie się, skrypt powinien zakończyć działanie. n=0 until [ $n -ge 5 ] do gksu *command* && break n=$[$n+1] sleep 3
Czy to możliwe, wykonaj chmod i zignoruj błąd z polecenia Przykład (uwaga file.txt nie istnieje, aby pokazać przykład) Kiedy piszę chmod 777 file.txt Na wyjściu pojawia się błąd chmod: cannot access file.txt : no such file or directory Dodam więc flagę-f do polecenia w następujący sposób: (plik.txt nie istnieje, aby …
Próbowałem zaktualizować sterownik nVidia, ale wystąpił błąd podczas uruchamiania instalacji sterownika. Zobacz błąd: BŁĄD: Wygląda na to, że działasz na serwerze X; proszę wyjść z X wcześniej instalacja Aby uzyskać więcej informacji, zobacz sekcję INSTALOWANIE STEROWNIK NVIDIA w README dostępny w sterowniku Linux strona pobierania na www.nvidia.com. Uwaga: Próbowałem postępować …
Próbuję utworzyć raportowanie błędów za pomocą pułapki w celu wywołania funkcji dla wszystkich błędów: Trap "_func" ERR Czy można uzyskać informację, z której linii wysłano sygnał ERR? Powłoka to bash. Jeśli to zrobię, mogę odczytać i zgłosić, które polecenie zostało użyte, i zarejestrować / wykonać niektóre działania. A może źle …
Ten skrypt nie echa „po”: #!/bin/bash -e echo "before" echo "anything" | grep e # it would if I searched for 'y' instead echo "after" exit Byłoby tak również, gdybym usunął -eopcję z linii shebang, ale chcę ją zachować, aby mój skrypt zatrzymał się w przypadku wystąpienia błędu. Nie uważam, …
Próbuję skompilować program napisany w Fortranie przy użyciu make(mam plik Makefile i, podczas gdy w katalogu zawierającym plik Makefile , wpisuję polecenie $ make target, gdzie „cel” jest specyficzną dla systemu specyfikacją celu, która jest obecna w moim Makefile . eksperymentując z różnymi wersjami specyfikacji docelowej, często próbuję wywołać różne …
Używam curl, aby przesłać plik na serwer za pośrednictwem postu HTTP. curl -X POST -d@myfile.txt server-URL Kiedy ręcznie wykonuję to polecenie w wierszu polecenia, otrzymuję odpowiedź z serwera jak "Upload successful". Jak jednak, jeśli chcę wykonać to polecenie curl za pomocą skryptu, jak mogę sprawdzić, czy moje żądanie POST zakończyło …
Chciałbym uprościć dane wyjściowe skryptu, tłumiąc wyniki poleceń pomocniczych, które zwykle są skuteczne. Jednak użycie -qna nich ukrywa dane wyjściowe, gdy czasami zawodzą, więc nie mam możliwości zrozumienia błędu. Ponadto te polecenia rejestrują swoje dane wyjściowe stderr. Czy istnieje sposób na wyłączenie wyniku polecenia tylko, jeśli się powiedzie ? Na …
Używam rsync -rlptDdo skopiowania katalogu od innego użytkownika. Jest kilka plików (nie mam możliwości ich wcześniejszego poznania), których nie mam uprawnień do kopiowania. Czy istnieje sposób, aby rsync je zignorował. Problem polega na tym, że jeśli rsync zwróci wartość niezerową, mój skrypt bash -x zakończy działanie.
Użytkownik wywołuje mój skrypt ze ścieżką do pliku, która zostanie utworzona lub nadpisana w pewnym momencie skryptu, np . foo.sh file.txtLub foo.sh dir/file.txt. Zachowanie tworzenia lub zastępowania przypomina wymagania dotyczące umieszczenia pliku po prawej stronie >wyjściowego operatora przekierowania lub przekazania go jako argumentu tee(w rzeczywistości przekazanie go jako argumentu dotee …
Dla pewności chciałbym bash przerwać wykonywanie skryptu, jeśli napotka błąd składniowy. Ku mojemu zaskoczeniu nie mogę tego osiągnąć. ( set -eto za mało.) Przykład: #!/bin/bash # Do exit on any error: set -e readonly a=(1 2) # A syntax error is here: if (( "${a[#]}" == 2 )); then echo …
Kiedy piszę kod bash, na przykład, który kopiuje plik, gdy plik nie istnieje, w terminalu widzę błąd podobny do „nie znaleziono pliku”, jeśli użytkownik skryptu nie uzyska uprawnienia, wyświetlony zostanie błąd up jest podobny do „odmowy dostępu”. Zasadniczo, bez względu na język programowania, na przykład podczas pisania kodu w celu …
Mam skrypt, który analizuje nazwy plików w tablicy przy użyciu następującej metody wziętej z pytań i odpowiedzi na temat SO : unset ARGS ARGID="1" while IFS= read -r -d $'\0' FILE; do ARGS[ARGID++]="$FILE" done < <(find "$@" -type f -name '*.txt' -print0) Działa to świetnie i doskonale radzi sobie ze …
Używam Ubuntu 12.04.2. Próbuję użyć polecenia „trap”, aby przechwycić nieprawidłowe lub błędne skrypty powłoki, ale próbuję również ręcznie uruchomić wyjście „Błąd”. Próbowałem wyjść 1, ale nie wyzwala sygnału „Błąd”. #!/bin/bash func() { exit 1 } trap "echo hi" INT TERM ERR func Nie wiesz, jak ręcznie wyzwolić sygnał wyjścia „Błąd”?
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.