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.
Lubię więc hartować moje skrypty bash, gdzie tylko mogę (a kiedy nie mogę delegować na język taki jak Python / Ruby), aby upewnić się, że błędy nie zostaną przechwycone. W tym stylu mam plik strict.sh, który zawiera takie rzeczy jak: set -e set -u set -o pipefail I źródła w …
Jeśli wykonam następujący prosty skrypt: #!/bin/bash printf "%-20s %s\n" "Früchte und Gemüse" "foo" printf "%-20s %s\n" "Milchprodukte" "bar" printf "%-20s %s\n" "12345678901234567890" "baz" Drukuje: Früchte und Gemüse foo Milchprodukte bar 12345678901234567890 baz to znaczy tekst z umlautami (np. ü) jest „zmniejszany” o jeden znak na umlaut. Oczywiście, mam gdzieś jakieś …
Szukam konstrukcji w bash, aby zdecydować, czy zmienna $WORDjest jednym ze zdefiniowanych słów. Potrzebuję czegoś takiego: if "$WORD" in dog cat horse ; then echo yes else echo no fi czy bash ma taką konstrukcję? Jeśli nie, co byłoby najbliższe?
Tak więc możesz używać *symbolu wieloznacznego dla wszystkich plików, gdy używasz go cpw kontekście katalogu. Czy istnieje sposób na skopiowanie wszystkich plików oprócz xpliku?
Po naciśnięciu przycisku Ctrl+ Lw domyślnym trybie bash ekran zostanie wyczyszczony. Ale kiedy uruchamiam set -o vii naciskam Ctrl+, Lnaciśnięcie klawisza jest drukowane ( ^L). Czy jest jakiś sposób na zachowanie tego zachowania?
Muszę połączyć dwie zmienne, aby utworzyć nazwę pliku z podkreśleniem. Wywołuje moje zmienne $FILENAMEi $EXTENSIONgdzie nazwa pliku jest odczytywana z pliku. FILENAME=Hello EXTENSION=WORLD.txt Teraz... Próbowałem następujących bez powodzenia: NAME=${FILENAME}_$EXTENSION NAME=${FILENAME}'_'$EXTENSION NAME=$FILENAME\\_$EXTENSION Zawsze otrzymuję coś dziwnego. Zwykle podkreślenie jest pierwsze. Muszę tak być echo $NAME Hello_WORLD.txt
Mam ciąg w następnym formacie id;some text here with possible ; inside i chcę podzielić go na 2 łańcuchy przez pierwsze wystąpienie ;. Tak powinno być: idisome text here with possible ; inside Wiem, jak podzielić ciąg (na przykład za pomocą cut -d ';' -f1), ale zostanie on podzielony na …
Mam wiele kont Amazon EC2 i chcę szybko móc zmieniać zmienne, na przykład za $EC2_HOMEpomocą skryptu. Mam skonfigurowany skrypt powłoki w ten sposób: #!/bin/sh export EC2_HOME=/home/me/.ec2 echo $EC2_HOME Kiedy uruchamiam skrypt, wiem, że EC2_HOMEjest ustawiony, ale pomyślałem, że użycie exportspowoduje, że zmienna pozostanie po zakończeniu skryptu. Nie działa, ponieważ bieganie …
Chcę usunąć dane /path/to/data/folder/month/date/hour/minute/filei /path/to/recent/fileutworzyć dowiązanie symboliczne i zrobić to automatycznie przy każdym utworzeniu pliku. Zakładając, że nie będę wiedział z góry, czy /path/to/recent/fileistnieje, jak mogę go utworzyć (jeśli nie istnieje) lub zastąpić (jeśli istnieje)? Jestem pewien, że mogę po prostu sprawdzić, czy istnieje, a następnie wykonać usuwanie, dowiązanie symboliczne, …
Powiedzmy, że kiedy wykonam polecenie ls, wynikiem jest: file1 file2 file3 file4 Czy można wyświetlić tylko określoną kolumnę wyników, w tym przypadku plik2? Próbowałem następujących bezskutecznie: echo ls | $2 Zasadniczo wszystko, co chcę zrobić, to echo tylko drugiej kolumny, w tym przypadku chcę echo: file2
Próbuję wykonać instrukcję JEŻELI z danych wyjściowych wykonanego polecenia. Oto jak próbuję to zrobić, ale to nie działa. Czy ktoś wie, jak to zrobić? if [ "`netstat -lnp | grep ':8080'`" == *java* ]; then echo "Found a Tomcat!" fi
Mam katalog wypełniony plikami o nazwach takich jak logXXgdzie XX to dwuznakowa, zerowa, duża liczba szesnastkowa, na przykład: log00 log01 log02 ... log0A log0B log0C ... log4E log4F log50 ... Ogólnie będzie mniej niż powiedzmy 20 lub 30 plików ogółem. Data i godzina w moim konkretnym systemie nie są czymś, …
W większości skryptów powłoki, które widziałem (oprócz tych, których sam nie napisałem), zauważyłem, że shebang jest ustawiony na #!/bin/sh. Tak naprawdę nie zaskakuje mnie to w przypadku starszych skryptów, ale dotyczy to również całkiem nowych skryptów. Czy jest jakiś powód, by preferować coś /bin/shwięcej /bin/bash, skoro bashna wielu maszynach z …
Mam kilka plików o tej samej podstawowej nazwie pliku. Chciałbym usunąć wszystkie oprócz jednego foo.org #keep foo.tex #delete foo.fls #delete foo.bib #delete etc Gdybym nie musiał go mieć, wiem, że mógłbym go użyć rm foo.*. TLDP demonstruje ^zanegowanie dopasowania. Dzięki próbom i błędom udało mi się to znaleźć rm foo.*[^org] …
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.