Pytania otagowane jako shell-script

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

3
PODSTAWA i zachowanie powrotu karetki
Mam jedno szybkie pytanie. Czy to normalne, że bash (używam 4.4.11) nie wyświetla linii / tekstu oddzielonego / zakończonego zwykłym \r? Byłem trochę zaskoczony tym zachowaniem: $ a=$(printf "hello\ragain\rgeorge\r\n") $ echo "$a" george Ale tekst „witaj ponownie” wciąż tam jest, w jakiś sposób „ukryty”: $ echo "$a" |od -w32 -t …

2
Policz liczbę elementów w tablicy bash, gdzie nazwa tablicy jest dynamiczna (tzn. Przechowywana w zmiennej)
Krótkie wyjaśnienie pytania: Czy istnieje wbudowana metoda bash zliczająca liczbę elementów w tablicy bash, w której nazwa tablicy jest dynamiczna (tj. Przechowywana w zmiennej), bez uciekania się do wykonania pełnej kopii tablicy lub użycia eval? Więcej informacji: Używając podstawiania parametrów bash, można wykonać następujące czynności: Określić długość tablicy: myArr=(A B …


4
Sprawdź, czy port telnet jest aktywny w skrypcie powłoki
Próbuję utworzyć skrypt, aby sprawdzić, czy można zalogować się przez telnet. Nie chcę się naprawdę logować; dlatego oczekiwanie nie jest potrzebne. Chcę tylko sprawdzić, czy mogę uzyskać monit o zalogowanie. Odbywa się to z systemu Linux, więc próbowałem użyć nc: nc 192.168.10.5 23 -w 1 | grep -q login if …


7
Czy 0 USD zawsze będzie zawierać ścieżkę do skryptu?
Chcę zastąpić bieżący skrypt, aby móc wydrukować pomoc i informacje o wersji z sekcji komentarzy u góry. Myślałem o czymś takim: grep '^#h ' -- "$0" | sed -e 's/#h //' Ale potem zastanawiałem się, co by się stało, gdyby skrypt został umieszczony w katalogu, który był w PATH i …

1
pośrednie rozszerzanie zmiennych w POSIX-ie w bash?
Czy jest to możliwe, czy jest jakiś elegancki hack, aby dokonać pośredniej rozbudowy zmiennych w POSIX, jak można to zrobić w Bash? W kontekście próbuję wykonać następujące czynności: for key in ${!map_*} do # do something done EDYCJA: Aby to wyjaśnić, chciałbym uzyskać dostęp do zmiennych powłoki, które zaczynają się …

4
Tablice asocjacyjne w skryptach powłoki
Widziałem sztuczkę polegającą na implementacji tablic asocjacyjnych w skrypcie powłoki. Na przykład print array["apples"]może być skryptowany jako echo \$array$keygdzie klucz = jabłka. Nie wspomniano jednak o tym, jak wygenerować klucze do iteracji po tablicy. Jedynym sposobem, w jaki mogłem wymyślić, było przechowywanie kluczy w zmiennej ograniczonej spacjami, aby móc użyć …

3
Przypisanie warunkowe na podstawie zmiennej środowiskowej
W skrypcie bash przypisuję zmienną lokalną, aby wartość zależała od zewnętrznej, globalnej zmiennej środowiskowej ( $MYAPP_ENV). if [ "$MYAPP_ENV" == "PROD" ] then SERVER_LOGIN=foobar123@prod.example.com else SERVER_LOGIN=foobar987@test.example.com fi Czy istnieje krótszy (ale czysty) sposób na napisanie powyższego zadania? (Prawdopodobnie używa pewnego rodzaju operatora warunkowego / inline if.)

5
Skrypt powłoki, aby wysłać wiadomość alarmową, jeśli użycie dysku przekroczy 90%
Chcę zaimplementować skrypt na moim serwerze, który będzie automatycznie wysyłać powiadomienia e-mail, jeśli użycie dysku wzrośnie powyżej 90%, a drugie powiadomienie e-mail, gdy przekroczy 95%. Mój system plików jest, abc:/xyz/abca punktem podłączenia jest /pqr. Próbowałem tego: ADMIN="someone@def.com" ALERT=90 df -H | grep -vE 'abc:/xyz/pqr | tmpfs |cdrom' | awk '{ …



2
Dlaczego #! / Usr / bin / env bash nie działa w moim systemie?
Podczas uruchamiania skryptów instalacyjnych, na które się skarżyły, napotkałem pewne problemy bad interpreter. Zrobiłem więc trywialny przykład, ale nie mogę zrozumieć, na czym polega problem, patrz poniżej. #!/usr/bin/env bash echo "hello" Wykonanie powyższego skryptu powoduje następujący błąd [root@ech-10-24-130-154 dc-user]# ./junk.sh bash: ./junk.sh: /usr/bin/env: bad interpreter: No such file or directory …

3
Wywołaj skrypt dla innego skryptu, ale nie wychodź z obiektu nadrzędnego, jeśli dziecko wywoła polecenie exit
first.sh: #! /bin/ksh echo "prova" . ./second.sh echo "ho lanciato il secondo" . ./third.sh echo "ho lanciato il terzo" second.sh: echo "sono nel secondo script" dosomething1 exit $? Jeśli second.shwykryje błąd i wyjdzie ze statusem -9, first.shkończy zawsze. Jak mogę uniknąć wychodzenia z pierwszej powłoki, jeśli powłoka potomna zostanie zamknięta? …

3
Naciśnij dowolny klawisz, aby wstrzymać skrypt powłoki, naciśnij ponownie, aby wznowić
Napisałem skrypt powłoki do testowania interfejsu API, który kopiuje pliki i po każdym powtarza jego postęp. Pomiędzy każdą kopią jest dwusekundowy sen, dlatego chciałbym dodać możliwość naciśnięcia dowolnego klawisza, aby wstrzymać skrypt i umożliwić głębsze testowanie. Następnie naciśnij dowolny klawisz, aby wznowić. Jak mogę to dodać w jak najmniejszej liczbie …

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.