Jeśli używam trapjak opisano np. Na http://linuxcommand.org/wss0160.php#trap, aby złapać ctrl-c (lub podobny) i oczyścić przed wyjściem, zmieniam zwrócony kod wyjścia. Teraz prawdopodobnie nie będzie to miało znaczenia w świecie rzeczywistym (np. Ponieważ kody wyjścia nie są przenośne, a ponadto nie zawsze są jednoznaczne, jak omówiono w Domyślnym kodzie wyjścia po …
Załóżmy, że chcę porównać gccwersję, aby zobaczyć, czy system ma zainstalowaną wersję minimalną, czy nie. Aby sprawdzić gccwersję, wykonałem następujące czynności gcc --version | head -n1 | cut -d" " -f4 Wynik był 4.8.5 Napisałem więc proste ifstwierdzenie, aby sprawdzić tę wersję pod kątem innej wartości if [ "$(gcc --version …
Mam plik w $ HOME / bin (zanim zapytasz, tak, jest on na mojej ścieżce) o nazwie, testktórą potwierdziłem, można wykonać poprawnie, gdy uruchomię go z pełną ścieżką do pliku. Mam jednak naprawdę dziwny problem, gdy nie uruchamiam go w ten sposób. Gdy tylko uruchamiam testterminal, nic nie robi i …
Załóżmy, że zadeklarowałem następujące zmienne: $ var='$test' $ test="my string" Jeśli wydrukuję ich zawartość, zobaczę: $ echo $var $test $ echo $test my string Chciałbym znaleźć sposób na wydrukowanie zawartości treści $var(która jest zawartością $test). Próbowałem więc wykonać następujące czynności: $ echo $(echo $var) $test Ale tutaj wynik jest $testi …
Czy przy próbie źródła pliku nie chcesz, aby błąd wskazywał, że plik nie istnieje, więc wiesz, co naprawić? Na przykład nvm zaleca dodanie tego do twojego profilu / rc: export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm Z powyższym, jeśli nvm.shnie istnieje, pojawi się „cichy …
Kiedy uruchamiam ten skrypt, zamierzam go uruchomić aż do zabicia ... # foo.sh while true; do sleep 1; done ... Nie mogę go znaleźć za pomocą ps ax: >./foo.sh // In a separate shell: >ps ax | grep foo.sh 21110 pts/3 S+ 0:00 grep --color=auto foo.sh ... ale jeśli po …
Chcę uruchomić kilka poleceń równolegle. Po zakończeniu wszystkich tych poleceń uruchom następne. Myślałem, że następujące podejście zadziała #!/bin/bash command1 & command2 & command3 && command4 ale tak nie było. Muszę uruchomić, command4gdy wszystkie trzy pierwsze polecenia zostaną całkowicie zakończone.
Czy są jakieś metody sprawdzenia, co faktycznie wykonujesz ze skryptu bash? Powiedzieć skrypt bash dzwoni kilka poleceń (na przykład: tar, mail, scp, mysqldump) i są chętni, aby upewnić się, że tarjest rzeczywista, prawdziwa tar, która jest do ustalenia przez rootużytkownika będącego właścicielem pliku i katalog nadrzędny, a tylko jeden z …
Jestem całkiem nowy w skryptach Bash. Mam „skrypt testowy”, którego użyłem jako podstawę do bardziej zaawansowanego / przydatnego skryptu: #!/bin/bash files=$1 for a in $files do echo "$a" done Kiedy wywołuję to bez cudzysłowów, po prostu wyszukuje jeden plik w katalogu: testscript *.txt Ale kiedy nazywam to cudzysłowami, działa poprawnie …
Czy w świecie * nix istnieje sposób, aby skrypt powłoki zawierał informacje o tym, który program go wykonał? Przykład: /path/to/script1 /path/to/script_xyz w tym urojonym scenariuszu script_xyzmiałby informacje o ścieżce ( /path/to/script1) lub proces PID podmiotu, który go wykonał. Uwaga: jestem ciekawy różnych rozwiązań i podejść, nie spodziewam się, że to …
Mam plik tekstowy zawierający jedną nazwę pliku w każdej linii: 111_c4l5r120.png 123_c4l4r60.png 135_c4l4r180.png 147_c4l3r60.png 15_c4l1r120.png ... Chcę przekonwertować go na ten kształt: 111_c4l5r120.png 111 123_c4l4r60.png 123 135_c4l4r180.png 135 147_c4l3r60.png 147 15_c4l1r120.png 15 ... za pomocą tego kodu: #!/bin/bash while IFS='' read -r line || [[ -n "$line" ]]; do echo …
Zasadniczo chcę „wyciągnąć” pierwsze wystąpienie -infz listy parametrów. (Pozostałe parametry zostaną przekazane do innego polecenia.) Skrypt, który mam, ma następującą strukturę: #!/bin/sh <CODE> for POSITIONAL_PARAM in "$@" do <CODE> if [ "$POSITIONAL_PARAM" = '-inf' ] then <PLUCK $POSITIONAL_PARAM FROM $@> break fi <CODE> done <CODE> some-other-command "$@" # end of …
Mam skrypt mierzący czas wykonywania niektórych poleceń. Potrzebuje polecenia „rzeczywistego” time, czyli binarnego na przykład w /usr/bin/time(ponieważ wbudowany bash nie ma -fflagi). Poniżej uproszczony skrypt, który można debugować: #!/bin/bash TIMESEC=$(echo blah | ( /usr/bin/time -f %e grep blah >/dev/null ) 2>&1 | awk -F. '{print $1}') echo ABC--$TIMESEC--DEF if [ …
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.