Pytania otagowane jako shell

Powłoka jest interfejsem wiersza poleceń Uniksa. Możesz pisać polecenia w powłoce interaktywnie lub pisać skrypty automatyzujące zadania. Użyj tego znacznika do pytań dotyczących / bin / sh i najbardziej kompatybilnych powłok (ash, bash, ksh, zsh,…). Skrypty powłoki z błędami sprawdź je w http://shellcheck.net przed opublikowaniem tutaj.

1
Etymologia PWD $
Jaka jest etymologia $PWD? Czy to akronim? Wiem, że istnieje polecenie, pwdktóre wypisuje katalog roboczy, ale moim zdaniem bardziej sensowne byłoby nazwać zmienną $CWDdla bieżącego katalogu roboczego, ponieważ zmienne powłoki zawierają dane, zamiast je drukować.
9 shell  history  pwd 

1
Dlaczego nie mogę wydrukować zmiennej, którą widzę na wyjściu env?
Interesuje mnie ustawienie zmiennych środowiskowych jednej instancji powłoki od drugiej. Postanowiłem więc przeprowadzić badania. Po odczytaniu numeru z pytaniami o to postanowiłem przetestować go. Odrodziłem dwie pociski A i B (PID 420), obie działające zsh. Z powłoki AI uruchomiono następujące. sudo gdb -p 420 (gdb) call setenv("FOO", "bar", 1) (gdb) …

1
Powrót karetki z poleceniem echa
Ćwiczyłem polecenie echa z opcją \r(powrót karetki) jak poniżej. echo -e "This is \r my college" wynik: my college ale kiedy dodam jeszcze jedno słowo \rjak poniżej echo -e "This is the \r my college" Następnie daje mi dane wyjściowe takie jak: my college the Inny przykład echo -e "This …
9 shell  echo  newlines 


3
Co to jest zmienna formularza = $ (…)
Co to znaczy: basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") Jestem szczególnie zainteresowany tą częścią: varible=$(...) Wiem, że w celu wykonania podprocesu używane są nawiasy, ale co, jeśli zostaną użyte razem z $?
9 shell 



4
Program Bash nie zostanie wykonany, jeśli przekierowanie nie powiedzie się
W bash zauważam, że jeśli polecenie korzystające z przekierowania nie powiedzie się, wszystkie programy, które działają wcześniej, nie zostaną uruchomione. Na przykład ten program otwiera plik „a” i zapisuje 50 bajtów w pliku „a”. Jednak uruchomienie tego polecenia z przekierowaniem do pliku o niewystarczających uprawnieniach (~ root / log) nie …

1
Co właściwie robi `\ time`,` t \ ime` i `\ cd`? (zabawa z ukośnikami w muszlach)
Omawiając różnice między /usr/bin/timewbudowanym shellem (bash i zsh) time, ktoś wspomniał, że można go użyć \timejako skrótu /usr/bin/time. Najpierw wydawało się to miłym, niewinnym skrótem, ale potem pojawiły się pytania: Dlaczego też t\imedziała? Dlaczego \cdzmienia katalog, chociaż /usr/bin/cd¹ tego nie robi? Oczywiście \foonie jest to równoważne $(which foo). Pytanie brzmi …

5
Jak grupować linie w pliku według dwóch?
Mam taki plik tekstowy: a b c d e f g Jak pogrupować te wiersze, aby uzyskać dane wyjściowe takie jak to: a-b b-c c-d d-e e-f f-g Muszę to zrobić w powłoce (sh, csh, bash). Znalazłem to: cat file | xargs -n2 ale ostatni element pierwszej grupy nie stał …

2
Nowy alias niedostępny po;
Do tej pory myślałem, że średnik w powłoce ma (w jakiś sposób) takie samo znaczenie jak podział linii. Byłem więc zaskoczony tym alias <name>=<replacement text>; <name> <name>jest nieznany, gdy jest znany w następnym wierszu. csh, tcsh, sh, kshI bashzachowują się tak samo. Przynajmniej cshnie ma znaczenia, czy alias zostanie użyty …
9 shell  alias 

3
Jak wydrukować znaki kontrolne z sekwencjami ucieczki?
Kolor czerwony zdefiniowałem za pomocą tput red=$(tput setaf 1) pokolorować ostrzeżenia w moim programie. Działa to dobrze: printf '%sfail\n' "$red" # prints 'fail' in red Ale pewnego razu chciałbym wydrukować sekwencję ucieczki taką, jaka jest, na przykład: \ E [31mfail Jak mam to zrobić? Wiem, że printf ma %qflagę, ale …

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
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 …

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.