Pytania otagowane jako bash

W przypadku pytań dotyczących skryptów napisanych dla powłoki poleceń Bash. W przypadku skryptów powłoki z błędami / błędami składni sprawdź je za pomocą programu shellcheck (lub na internetowym serwerze shellcheck pod adresem https://shellcheck.net) przed opublikowaniem tutaj. Pytania dotyczące interaktywnego korzystania z Bash są bardziej prawdopodobne na Super User niż na Stack Overflow.

30
Jak uzyskać katalog źródłowy skryptu Bash z poziomu samego skryptu
Jak uzyskać ścieżkę do katalogu, w którym znajduje się skrypt Bash , wewnątrz tego skryptu? Chcę użyć skryptu Bash jako programu uruchamiającego dla innej aplikacji. Chcę zmienić katalog roboczy na katalog, w którym znajduje się skrypt Bash, aby móc operować na plikach w tym katalogu, w następujący sposób: $ ./application
4948 bash  directory 


19
Jak sprawdzić, czy zwykły plik nie istnieje w Bash?
Użyłem następującego skryptu, aby sprawdzić, czy plik istnieje: #!/bin/bash FILE=$1 if [ -f $FILE ]; then echo "File $FILE exists." else echo "File $FILE does not exist." fi Jakiej poprawnej składni użyć, jeśli chcę tylko sprawdzić, czy plik nie istnieje? #!/bin/bash FILE=$1 if [ $FILE does not exist ]; then …
3260 bash  file-io  scripting 


26
Jak sprawdzić, czy ciąg zawiera podciąg w Bash
Mam ciąg w Bash: string="My string" Jak mogę sprawdzić, czy zawiera inny ciąg? if [ $string ?? 'foo' ]; then echo "It's there!" fi Gdzie ??jest mój nieznany operator. Czy używam echa i grep? if echo "$string" | grep 'foo'; then echo "It's there!" fi To wygląda trochę niezdarnie.
2564 string  bash  shell  substring  sh 


17
Co w skorupce oznacza „2> i 1”?
W powłoce Unix, jeśli chce się połączyć stderri stdoutdo stdoutstrumienia do dalszej manipulacji, mogę dołączyć następujące na koniec mojego polecenia: 2>&1 Więc jeśli chcę użyć headna wyjściu z g++, mogę zrobić coś takiego: g++ lots_of_errors 2>&1 | head więc widzę tylko kilka pierwszych błędów. Zawsze mam problem z zapamiętywaniem tego …
2282 bash  shell  unix  redirect 


30
Wyodrębnij nazwę pliku i rozszerzenie w Bash
Chcę osobno pobrać nazwę pliku (bez rozszerzenia) i rozszerzenie. Najlepszym rozwiązaniem, jakie do tej pory znalazłem, jest: NAME=`echo "$FILE" | cut -d'.' -f1` EXTENSION=`echo "$FILE" | cut -d'.' -f2` Jest to złe, ponieważ nie działa, jeśli nazwa pliku zawiera wiele .znaków. Jeśli, powiedzmy, mam a.b.js, rozważy ai b.jszamiast a.bi js. …
2104 bash  string  filenames 

30
Jak podzielić ciąg na ograniczniku w Bash?
Mam ten ciąg przechowywany w zmiennej: IN="bla@some.com;john@home.com" Teraz chciałbym podzielić ciągi znaków według ;ogranicznika, aby: ADDR1="bla@some.com" ADDR2="john@home.com" Niekoniecznie potrzebuję zmiennych ADDR1i ADDR2. Jeśli są to elementy tablicy, które są jeszcze lepsze. Po sugestiach z poniższych odpowiedzi, skończyłem z następującymi, co było po: #!/usr/bin/env bash IN="bla@some.com;john@home.com" mails=$(echo $IN | tr ";" …
2039 bash  shell  split  scripting 

30
Jak parsować argumenty wiersza poleceń w Bash?
Powiedzmy, że mam skrypt wywoływany za pomocą tej linii: ./myscript -vfd ./foo/bar/someFile -o /fizz/someOtherFile albo ten: ./myscript -v -f -d -o /fizz/someOtherFile ./foo/bar/someFile Co znajduje się w przyjętym sposobem analizowania tego taki, że w każdym przypadku (lub kombinacja tych dwóch) $v, $fi $dwszystko będzie ustawiona truei $outFilebędzie równa /fizz/someOtherFile?


14
Jak ustawić zmienną na wyjściu polecenia w Bash?
Mam dość prosty skrypt, który jest podobny do następującego: #!/bin/bash VAR1="$1" MOREF='sudo run command against $VAR1 | grep name | cut -c7-' echo $MOREF Kiedy uruchamiam ten skrypt z wiersza poleceń i przekazuję mu argumenty, nie otrzymuję żadnych danych wyjściowych. Jednak po uruchomieniu poleceń zawartych w $MOREFzmiennej jestem w stanie …
1675 bash  shell  command-line 


30
Jak rekurencyjnie policzyć wszystkie wiersze kodu w katalogu?
Mamy aplikację PHP i chcemy policzyć wszystkie wiersze kodu w określonym katalogu i jego podkatalogach. Nie musimy ignorować komentarzy, ponieważ staramy się tylko uzyskać ogólny pomysł. wc -l *.php To polecenie działa świetnie w danym katalogu, ale ignoruje podkatalogi. Myślałem, że to może zadziałać, ale zwraca 74, co zdecydowanie nie …
1622 bash  shell 

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.