Pytania otagowane jako bash

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.

5
Znajdź ostatnie wystąpienie ciągu w wielu plikach
Muszę przeszukać wiele plików dziennika (wszystkie pliki wygenerowane w ciągu ostatnich 24 godzin, wszystkie przechowywane w tym samym katalogu), aby znaleźć ostatnie wystąpienie ciągu. Oto polecenie, które napisałem: find . -mtime 1 | grep fileprefix | xargs grep 'search string' | tail -1 Ale to zwraca tylko ostatnią linię dla …

1
Bash: Ile głębokich sesji zagnieżdżonych?
Powiedzmy, że rozpoczynam bashpowłokę, ... a następnie kolejną bashsesję z tej powłoki, ... i kolejną bashsesję z tej sesji, ... a następnie kolejną bashsesję z tej sesji, ... (razy N) itp. Aby wyjść ze wszystkich N sesji, muszę wpisać exitN razy. Jak mogę dowiedzieć się, jak głęboko jestem zagnieżdżony w …

3
Nowa linia w zmiennych bash
Próbuję zapisać wiele wierszy w zmiennej bash, ale wydaje się, że to nie działa. Na przykład, jeśli wymienię /binjeden plik w wierszu i zapiszę go $LS, $LSprzekażę jako standardowe wejście wc, zawsze zwraca 1: $ ls -1 /bin | wc -l 134 $ LS=$(ls -1 /bin); wc -l <<< $LS …
9 bash  shell  quoting 

4
Jak zapewnić, że ciąg ma znak nowej linii, a jeśli tak, usuń go
Mam ciąg będący wynikiem operacji, nad którą nie mam kontroli. Kiedy drukuję tę zmienną za pomocą echo, otrzymuję: echo $myvar hello Jednak kiedy to zrobię if [ $myvar = "hello" ]; then echo they are equal else echo they are not equal fi Zawsze rozumiem, że nie są równi. Podejrzewam, …
9 bash  string 

2
W pętli nad tablicą dodaj element do tablicy
Mam problem z pętlą for w bash. Na przykład: Mam tablicę ("etc" "bin" "var"). I iteruję na tej tablicy. Ale w pętli chciałbym dodać trochę wartości do tablicy. Na przykład array=("etc" "bin" "var") for i in "${array[@]}" do echo $i done Wyświetla się etc bin var(oczywiście w osobnych wierszach). A …
9 bash  array  for 

3
Wstaw linie do historii bashu
Domyślnie bash ładuje linie od ~/.bash_historydo historii. Czy można dodać niestandardowy plik do załadowania? Chcę wstrzyknąć plik zawierający często używane polecenia i uzyskać do nich dostęp za pomocą wbudowanego wyszukiwania.
9 bash 

4
Przenieś pliki według daty do innego katalogu za pomocą CLI
Mam dużą liczbę zdjęć ze starego dysku twardego, który próbuję uporządkować. Jeśli uruchomię ls -l, zauważę , że wszystkie te pliki mają datę utworzenia 2012 lub wcześniejszą. Idealnie chciałbym przenieść je na drugi dysk twardy mojego komputera, który nie jest ustawiony do automatycznego montowania. Najlepiej, gdybym mógł to wszystko zrobić …

1
Dlaczego nie ma nowego wiersza na końcu cytowania podpowłoki i przekazywania wyników do echa?
Kiedy robię, ls | grep pngwyjście grep jest: 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (nazwa pliku, nowa linia, nazwa pliku, nowa linia) następnie echo $(ls | grep png)wyjścia: 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (nazwa pliku, spacja z dzielenia słów, nazwa pliku, nowa linia !! z echa !!) Wszystko jest w porządku, ale kiedy to zrobię, aby zapobiec …

2
Jak wydrukować tylko nazwę skryptu?
[username@notebook ~]$ cat foo.sh #!/bin/bash echo "$0" [username@notebook ~]$ ./foo.sh ./foo.sh [username@notebook ~]$ Pytanie : Jak mogę wygenerować plik „foo.sh”? Bez względu na to, jak zostało wykonane.


2
Jak bash traktuje „>> ()”
Podczas eksperymentów z przekierowaniem wyjścia i podstawieniem procesu natknąłem się na następującą komendę i jej wynik: me @ elem: ~ $ echo foo>> (cat); pasek echa bar me @ elem: ~ $ foo (Tak, ta pusta nowa linia na końcu jest celowa). Więc uderz w pasek echa, wypisuje mój zwykły …


2
Uruchom inne polecenie przed uruchomieniem polecenia, które użytkownik chce uruchomić
Powiedzmy, że chcę zmodyfikować oryginalne zachowanie lsnarzędzia w ten sposób: $ ls Hello World file1 file2 ... W jaki sposób mogę to zrobić? Podczas uruchamiania lschciałbym uruchomić inne polecenie, powiedzmy echo "Hello World!". Szybkim rozwiązaniem, które widzę, jest użycie aliasu: alias orig_ls="ls" alias ls='echo "Hello World!"' Jednak nie jest to …



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.