Piszę skrypt bash, w którym chcę wyjść, jeśli użytkownik nie jest rootem. Warunkowe działa dobrze, ale skrypt nie kończy działania. [[ `id -u` == 0 ]] || (echo "Must be root to run script"; exit) Próbowałem użyć &&zamiast, ;ale nie
Piszę skrypt bash, w którym chcę wyjść, jeśli użytkownik nie jest rootem. Warunkowe działa dobrze, ale skrypt nie kończy działania. [[ `id -u` == 0 ]] || (echo "Must be root to run script"; exit) Próbowałem użyć &&zamiast, ;ale nie
Czasem widzę skrypty używać wszystkich tych różnych sposobów cytuje tekst: "...", '...', $'...', i $"...". Dlaczego stosuje się tak wiele różnych rodzajów ofert? Czy zachowują się inaczej lub wpływają na to, co mogę w nich
Rozważ następującą (nieco głupią) nazwę skryptu „test1.sh”: #/bin/bash # sleep 10 & echo sleep pid = $! pkill sleep Kiedy go uruchamiam, otrzymuję nie tylko wynik echa, ale także raport bash o śmierci snu na stderr: $ ./test1.sh sleep pid = 3551 ./test1.sh: line 5: 3551 Terminated sleep...
unset array[0]usuwa element, ale mimo to echo ${array[0]}otrzymuję wartość null, są też inne sposoby, ale jeśli element tablicy zawiera spacje takie jak poniżej array[0]='james young' array[1]='mary' array[2]='randy orton' ale one również nie wykonują zadania array=${array[@]:1} #removed the...
Mam skrypt, który nie wychodzi, kiedy chcę. Przykładowy skrypt z tym samym błędem to: #!/bin/bash function bla() { return 1 } bla || ( echo '1' ; exit 1 ) echo '2' Zakładam, że zobaczę wynik: :~$ ./test.sh 1 :~$ Ale tak naprawdę widzę: :~$ ./test.sh 1 2 :~$ Czy ()tworzenie łańcuchów...
Zauważyłem, że {można to wykorzystać w rozszerzaniu nawiasów: echo {1..8} lub w grupie poleceń: {ls;echo hi} Skąd Bash zna
Tak więc usunąłem mój folder domowy (a ściślej wszystkie pliki, do których miałem dostęp do zapisu). Stało się to, że miałem build="build" ... rm -rf "${build}/"* ... <do other things with $build> w skrypcie bash i, po nieużywaniu $build, usuwając deklarację i wszystkie jej zastosowania -...
Mam skrypt, który musi utworzyć pliki tymczasowe do pracy i posprzątać po sobie. Moje pytanie dotyczy znalezienia odpowiedniego katalogu podstawowego dla plików tymczasowych. Skrypt musi działać na wielu platformach: Git Bash (Windows), Solaris, Linux, OSX. Na każdej platformie preferowany katalog...
Jak można szybko przełączać się między wieloma katalogami w celu administrowania systemem? Mam na myśli, że mogę używać pushd .i popdprzełączać, ale co, jeśli chcę przechowywać wielokrotności i przełączać się między nimi, zamiast trwale wyrzucać je z dołu
Celem tego pytania jest odpowiedź na ciekawość, a nie rozwiązanie konkretnego problemu komputerowego. Pytanie brzmi: dlaczego obowiązkowe narzędzia POSIX nie są często wbudowane w implementacje powłoki? Na przykład mam skrypt, który w zasadzie czyta kilka małych plików tekstowych i sprawdza, czy...
Włamałem się do wielu skryptów powłoki i czasami najprostsze rzeczy mnie zaskakują. Dzisiaj natknąłem się na skrypt, który szeroko wykorzystywał :wbudowane bash (dwukropek). Documenation wydaje się dość proste: : (a colon) : [arguments] Nie rób nic poza rozszerzaniem argumentów i...
W Wikipedii artykuł dla .sh mówi: Typ rozszerzenia pliku .sh znajduje się w powłoce Bourne'a . A co z innymi powłokami unixowymi? Wiem, że shebang jest używany w pliku do wskazania interpretera do wykonania, ale zastanawiam się: Jakie są zalety i wady rozszerzeń plików w porównaniu z...
Istnieje kilka sposobów wykonania skryptu, z których znam: /path/to/script # using the path (absolute or relative) . script # using the . (dot) source script # using the `source` command Czy to więcej? Jakie są między nimi różnice? Czy są sytuacje, w których muszę korzystać z jednej, a nie...
Jaki jest najlepszy sposób (niezawodny, przenośny itp.), Aby sprawdzić, czy dany folder znajduje się w zamontowanym zdalnym systemie plików (nfs) w skrypcie powłoki? Szukam polecenia, które wyglądałoby następująco: chk-remote-mountpoint /my/path/to/folder
Kiedy próbuję biec ./script.sh, mam, Permission deniedale kiedy biegam, bash script.shwszystko jest w porządku. Co zrobiłem
Chcę zrobić coś takiego: if cmd1 && cmd2 echo success else echo epic fail fi Jak mam to
Mam tablicę zawierającą niektóre elementy, ale chcę wypchnąć nowe elementy na początek tablicy; W jaki sposób mogę to
W skryptach bash: tworzymy zmienną, nazywając ją: abc=ok lub możemy użyć declare declare abc=ok co za różnica? i dlaczego bash oferuje tak wiele sposobów tworzenia
Chcę napisać skrypt, który przyjmuje .txtnazwę pliku jako argument, odczytuje plik linia po linii i przekazuje każdą linię do polecenia. Na przykład uruchamia się command --option "LINE 1", command --option "LINE 2"itd. Dane wyjściowe polecenia są zapisywane w innym pliku. Jak mam to zrobić? Nie...
Chcę przetestować skrypt za pomocą polecenia, które się nie powiedzie. Mógłbym użyć istniejącego polecenia ze złymi argumentami. Mógłbym również napisać prosty skrypt, który natychmiast kończy działanie z błędem. Oba są łatwe do zrobienia i działają dla mnie, ale jeśli istnieje standardowe...