Pytania specyficzne dla GNU Bourne Again SHell, w przeciwieństwie do innych powłok Bourne / POSIX. W przypadku pytań dotyczących powłok uniksowych użyj zamiast tego znacznika / shell.
Jaka jest różnica (jeśli występuje) w skryptach powłoki Bash między następującymi dwiema instrukcjami? 1.) if [ -z "$1" ] 2.) if [ "$1" = "" ] Znalazłem siebie, pisząc drugi w niektórych skryptach, ale potem przeczytałem tutaj, że używanie -zosiąga to samo. Jeśli występują problemy z korzystaniem z drugiego, czy …
W Advanced Bash-Scripting Guide , w przykładzie 27-4 , 7-ta linia od dołu przeczytałem: Funkcja działa jako podproces. Zrobiłem test w Bash i wydaje się, że powyższe stwierdzenie jest błędne. Wyszukiwania w tej witrynie, Bash Man i moja wyszukiwarka nie przynoszą żadnego światła. Czy znasz odpowiedź i chciałbyś wyjaśnić?
Pytanie dotyczy zmiennych specjalnych. Dokumentacja mówi: !!:$ wyznacza ostatni argument poprzedniego polecenia . Można to skrócić do! $. ( $_podkreślenie.) Przy uruchamianiu powłoki ustaw bezwzględną nazwę ścieżki używaną do wywoływania powłoki lub skryptu powłoki wykonywanej tak, jak przekazano w środowisku lub liście argumentów. Następnie rozwija się do ostatniego argumentu do …
Chcę przekonwertować wszystkie pliki * .flac do * .mp3 w określonym folderze. Oto, co próbowałem, ale nie działa: # change to the home directory cd ~/music # convert all *.flac files ffmpeg -i *.flac -acodec libmp3lame *.mp3 # (optional: check whether there are any errors printed on the terminal) sleep …
Pętlowanie plików ma dwa sposoby: użyj forpętli: for f in *; do echo "$f" done użyj find: find * -prune | while read f; do echo "$f" done Zakładając, że te dwie pętle znajdą tę samą listę plików, jakie są różnice między tymi dwiema opcjami w zakresie wydajności i obsługi?
To, co chcę osiągnąć, to móc automatycznie rejestrować sesje terminali w plikach za każdym razem, gdy korzystam z Yakuake / Konsole. Łatwo to osiągnąć, jeśli na początku mojej sesji: script -f /home/$USER/bin/shell_logs/$(date +"%d-%b-%y_%H-%M-%S")_shell.log Ale chcę uruchomić powyższe automatycznie przy każdym uruchomieniu Yakuake lub otwarciu nowej karty. Korzystanie z .bashrc nie …
Kiedy piszę cd ~foo, chcę, aby bash zabrał mnie do jakiegoś katalogu foojako skrót do wpisania pełnej ścieżki do katalogu foo. i chciałbym móc cp ~foo/bar.txt ~/bar.txtskopiować plik z /foo/katalogu do katalogu domowego ... Zasadniczo chcę coś, co działa dokładnie tak ~/samo, ale gdzie określam, jaki powinien być katalog. [Jestem …
UWAGA: To pytanie jest uzupełnieniem tego pytania i odpowiedzi: Jak „grep” dla długości linii * nie * w danym zakresie? Muszę uzyskać tylko wiersze z pliku tekstowego (lista słów oddzielona znakiem nowej linii), który ma zakres długości minimum lub równy 3 znakom, ale nie dłuższy lub równy 10. Przykład: WKŁAD: …
Przeczytaj, że do porównywania napisów w środku ifmusimy użyć podwójnych nawiasów kwadratowych. Niektóre książki mówią, że porównania można dokonać =. Ale to też działa ==. #!/bin/bash a="hello" b="world" if [[ $a == $b ]];then echo "equal" fi Czy jest jakaś różnica pomiędzy =i ==w porównaniu?
To pytanie zostało przeniesione z Stack Overflow, ponieważ można na nie odpowiedzieć na Unix i Linux Stack Exchange. Migrował 6 lat temu . Chcę wykonać skrypt po podłączeniu urządzenia do komputera z systemem Linux. Na przykład uruchom xinputna myszy lub w kopii zapasowej na określonym dysku. Widziałem wiele artykułów na …
Mam tę listę plików pdf w katalogu: c0.pdf c12.pdf c15.pdf c18.pdf c20.pdf c4.pdf c7.pdf c10.pdf c13.pdf c16.pdf c19.pdf c2.pdf c5.pdf c8.pdf c11.pdf c14.pdf c17.pdf c1.pdf c3.pdf c6.pdf c9.pdf Chcę połączyć je za pomocą ghostscript w kolejności numerycznej (podobnej do tej): gs -q -sPAPERSIZE=a4 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf *.pdf Ale kolejność …
Wiem, co to whilejest pętla. Widziałem jednak, że działa tylko z: while [condition] while ![condition] while TRUE (infinite loop) W przypadku gdy oświadczenie po whilemusi być TRUEalbo FALSE. Istnieje wbudowane polecenie powłoki o nazwie :. Jest to opisywane jako fikcyjne polecenie, które nic nie robi, ale nie wiem, czy tutaj …
Obserwuję dziwne zachowanie podczas używania set -e( errexit), set -u( nounset) wraz z pułapkami ERR i EXIT. Wydają się powiązane, więc postawienie ich w jednym pytaniu wydaje się rozsądne. 1) set -unie uruchamia pułapek ERR Kod: #!/bin/bash trap 'echo "ERR (rc: $?)"' ERR set -u echo ${UNSET_VAR} Oczekiwany: pułapka ERR …
Muszę zweryfikować długość odczytu zmiennej (mój limit skryptu do pięciu wstawionych znaków), myślę o czymś takim: #!/bin/bash read string check=${#string} echo $check if [ $check -ge 5 ]; then echo "error" ; exit else echo "done" fi czy istnieje bardziej „eleganckie” rozwiązanie?
Jestem zakłopotany. Mam skrypt w moim /homekatalogu, który można wykonać: [user@server ~]$ ll total 4 -rwx------ 1 user user 2608 Jul 15 18:23 qa.sh Jednak gdy próbuję go uruchomić sudo, mówi, że nie może go znaleźć: [user@server ~]$ sudo ./qa.sh [sudo] password for user: sudo: unable to execute ./qa.sh: No …
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.