Pytania otagowane jako shell-script

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

4
Zachować kody wyjścia podczas wychwytywania SIGINT i podobnych?
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 …

5
Jak porównać wersję programu w skrypcie powłoki?
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 …



4
Czy można wydrukować zawartość zmiennej za pomocą skryptu powłoki? (odniesienia pośrednie)
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 …

3
Po co sprawdzać istnienie pliku przed jego uzyskaniem?
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 …




6
Weryfikacja plików binarnych poleceń przed wykonaniem
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 …


2
Czy istnieje sposób, aby skrypt powłoki wiedział, który program go wykonał?
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 …

3
Jak usunąć \ n między wyjściami dwóch poleceń echa?
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 …

2
Jak usunąć parametr pozycyjny z $ @
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 …

2
Dlaczego „bash -x” psuje ten skrypt?
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 [ …

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.