Pytania otagowane jako shell-script

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

2
Test POSIX i -a
Sprawdziłem mój skrypt za pomocą checkbashism i otrzymałem następujące ostrzeżenia: possible bashism in check_ssl_cert line 821 (test -a/-o): if [ -n "${ALTNAMES}" -a -n "${COMMON_NAME}" ] ; then W sekcji 4.62.4 specyfikacji POSIX znajduję pierwszorzędny -a pierwotny Wykonuje plik binarny oraz wyniki pierwotny i pierwotny. Operator -a ma pierwszeństwo przed …


2
Żądanie danych wejściowych od użytkownika podczas odczytu pliku linia po linii
W przypadku klasy muszę napisać skrypt Bash, który pobierze dane wyjściowe, ispella kiedy próbuję poprosić użytkownika o wprowadzenie danych w pętli while, zapisuje on po prostu następny wiersz pliku jako dane wejściowe użytkownika. Jak mogę poprosić użytkownika o wprowadzenie danych w pętli while? #!/bin/bash #Returns the misspelled words #ispell -l …

1
Przekierowanie wyjścia i spacje
Mam paranoję na ten temat, ale mam nadzieję, że to proste pytanie: Czy jest jakaś różnica między cat file1 | egrep -oP "[Mm]y string" > /home/user/file.txt i cat file1|egrep -oP "[Mm]y string">/home/user/file.txt tzn. czy ma to znaczenie, jeśli mam spacje wypełniające znaki potoku (|) i przekierowania (>)? Jestem naprawdę paranoikiem, …

2
Czy usunięcie skryptu z tego skryptu jest bezpieczne?
Wyobraź sobie, że mam skrypt foo. Powinien zostać uruchomiony raz, gdy użytkownik się zaloguje, i nie jest potrzebny po pomyślnym uruchomieniu. Moje pytanie: czy bezpiecznie jest usunąć plik skryptu z poziomu skryptu? Na przykład: #!/bin/bash # do something ... # if successful rm /path/to/foo exit 0

2
Równoległa pętla for
Chcę zrównoleglić forpętle poniższego kodu. Jak to zrobić? #!/bin/bash N=$1 n=$2 for (( i=1; i<=$N; i++ )); do min=100000000000000 //set min to some garbage value for (( j=1; j<=$n; j++ )); do val=$(/path/to/a.out) val2=`echo $val | bc` if (( $val2 < $min )); then min=$val2; fi done arr=("${arr[@]}" "$min") done


3
Transkodowanie Mass .flac -> .mp3: Jak napisać skrypt powłoki, który zachowuje informacje o znacznikach ID3?
W ostatnich tygodniach przeszedłem z dość praktycznego podejścia do transkodowania plików .flac -> .mp3, na takie, które jest znacznie bardziej „ustawione i zapomnij”. Pierwszym krokiem było zaprzestanie korzystania z interfejsu GUI (Audacity z wtyczką LAME), a zamiast tego użycie metody opisanej tutaj . Drugim krokiem było znalezienie skryptu powłoki bash, …


1
Jak dodawać komentarze do instrukcji wielowierszowych w skrypcie Bash?
Nie dodam komentarzy do instrukcji wieloliniowych w skrypcie bash. Wygląda na to, że bash nie tłumaczy. Ponieważ komentarze mogą być naprawdę przydatne, ponieważ istnieją potencjalne 4-5 wierszy, czy ktoś może mi doradzić, jak to osiągnąć? To tylko podstawowy przykład, który nie działa. #!/bin/bash iptables -A INPUT \ #Comment for rule …


1
Wsadowa zmiana nazw plików z rosnącym numerem
Mam partię plików: $ ls Li1Fe1O2_11 Li1Fe2O3_8 Li1Fe3O4_2 Li1Fe3O4_5 Li2Fe1O3_16 Li2Fe2O4_12 Li3Fe1O4_19 Li3Fe1O4_22 Li1Fe1O2_14 Li1Fe2O3_9 Li1Fe3O4_3 Li1Fe3O4_6 Li2Fe1O3_17 Li2Fe2O4_13 Li3Fe1O4_20 Li1Fe2O3_7 Li1Fe3O4_1 Li1Fe3O4_4 Li2Fe1O3_15 Li2Fe2O4_10 Li3Fe1O4_18 Li3Fe1O4_21 I chciałbym zmienić ich nazwę na: enum-00132 enum-00133 enum-00134 ... Próbowałem zmienić nazwę bez powodzenia.

1
Podczas gdy pętle nie zapętlają wszystkich wartości
Stworzyłem kilka fragmentów kodu - w Pythonie i C - które muszą być uruchamiane wiele razy, każdy z nowym zestawem wartości wejściowych. Aby to zrobić, stworzyłem skrypt powłoki Unixa, który powinien uruchamiać różne programy dla wielu różnych danych wejściowych: #!/bin/sh _file="${1:-/dev/null}" while IFS=' ' read -r f1 f2 f3 f4 …

1
Umieść blok kodu bash w podpowłoce
Miałem nadzieję, że to zadziała: echo "starting"; { cd "$HOME/foobar" echo "rolo" > file.txt } echo "ending"; gdzie kod podpowłoki miałby miejsce między nawiasami klamrowymi, ale ta składnia wydaje się niepoprawna, jak mogę to zrobić?

1
Wyjdź / dev / tty po komunikacie o błędzie
Uruchamiam tę funkcję bash po naciśnięciu przycisku, wywołuje mój telefon komórkowy, jednak gdy połączenie kończy się lub odrzucam połączenie, zawiesza się w / dev / tty i nie wraca do programu głównego call.sh #!/bin/bash printf %s\\n 'call sip:in06khattab@ekiga.net' | cat - /dev/tty |twinkle -c Oto główny program: while(1): if lcd.buttonPressed(lcd.SELECT): …

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.