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.


3
„Pułapka… INT TERM EXIT” naprawdę konieczne?
Wiele przykładów trapużycia trap ... INT TERM EXITdo zadań czyszczenia. Ale czy naprawdę trzeba wymienić wszystkie trzy sigspecy? Instrukcja mówi: Jeśli SIGNAL_SPEC to EXIT (0), ARG jest wykonywane przy wyjściu z powłoki. które moim zdaniem ma zastosowanie niezależnie od tego, czy skrypt zakończył się normalnie, czy zakończył się, ponieważ otrzymał …
63 bash  shell  signals  trap 


5
Dlaczego SIGINT nie jest propagowany do procesu potomnego, gdy jest wysyłany do procesu macierzystego?
Biorąc pod uwagę proces powłoki (np. sh) I jego proces potomny (np. cat), W jaki sposób mogę zasymulować zachowanie Ctrl+ Cprzy użyciu identyfikatora procesu powłoki? Oto, co próbowałem: Uruchamianie, sha następnie cat: [user@host ~]$ sh sh-4.3$ cat test test Przesyłanie SIGINTdo catz innego terminala: [user@host ~]$ kill -SIGINT $PID_OF_CAT cat …
62 shell  process  signals 

3
Jak pobrać archiwum i wyodrębnić je bez zapisywania archiwum na dysku?
Chciałbym pobrać i rozpakować archiwum w danym katalogu. Oto jak to robiłem do tej pory: wget http://downloads.mysql.com/source/dbt2-0.37.50.3.tar.gz tar zxf dbt2-0.37.50.3.tar.gz mv dbt2-0.37.50.3 dbt2 Chciałbym zamiast tego pobierać i rozpakowywać archiwum w locie , bez konieczności tar.gzzapisywania na dysku. Myślę, że jest to możliwe, przesyłając dane wyjściowe wgetdo tari podając tarcel, …
62 shell  pipe  tar  wget 

5
Nie można wciąć heredoc, aby dopasować wcięcie zagnieżdżenia
Jeśli istnieją skrypty „Pierwszego świata”, to właśnie one. Mam następujący kod w skrypcie, który aktualizuję: if [ $diffLines -eq 1 ]; then dateLastChanged=$(stat --format '%y' /.bbdata | awk '{print $1" "$2}' | sed 's/\.[0-9]*//g') mailx -r "Systems and Operations <sysadmin@[redacted].edu>" -s "Warning Stale BB Data" jadavis6@[redacted].edu <<EOI Last Change: $dateLastChanged …

6
Jak sprawdzić, czy bash może drukować kolory
Chcę wiedzieć, czy jest jakiś sposób, aby sprawdzić, czy mój program może wyprowadzać dane wyjściowe terminala przy użyciu kolorów, czy nie. Uruchamianie poleceń takich jak lessi patrząc na dane wyjściowe z programu, który wyświetla za pomocą kolorów, dane wyjściowe są wyświetlane nieprawidłowo, jak [ESC[0;32m0.052ESC[0m ESC[1;32m2,816.00 kbESC[0m] Dzięki
62 shell  terminal  colors 

1
Dlaczego nullglob nie jest domyślny?
W większości powłok nullglobnie jest domyślna. Oznacza to na przykład, jeśli uruchomisz to polecenie ls * w pustym katalogu rozwinie *glob do dosłownego *, zamiast do pustej listy argumentów. Istnieją sposoby na zmianę tego zachowania, tak aby *w pustym katalogu zwracana była pusta lista argumentów, co wydawałoby się bardziej intuicyjne. …
61 shell  wildcards 

3
Co robi `kill -0`?
Ostatnio natknąłem się na to w skrypcie powłoki. if ! kill -0 $(cat /path/to/file.pid); then ... do something ... fi Co ma kill -0 ...zrobić?
61 shell  process  kill 


1
W jaki sposób to polecenie jest legalne? „> Plik1 <plik2 kot”
Zakładając, że file2już istnieje, polecenie &gt; file1 &lt; file2 cat wydaje się kopiować zawartość file2do file1. Ale nie mogę zrozumieć tej struktury. Rozumiem, że „Nic” nie jest kierowane file1(tworzenie lub usuwanie jego treści). Następnie file2kierowana jest treść file1. Dlaczego catpo file2? skąd ma wiedzieć, cat file2czy operandy nie są we …

2
Jak zapętlić linie pliku?
Powiedz, że mam ten plik: hello world hello world Ten program #!/bin/bash for i in $(cat $1); do echo "tester: $i" done wyjścia tester: hello tester: world tester: hello tester: world Chciałbym, aby foriteracja nad każdą linią była indywidualnie ignorowana spacje, tzn. Ostatnie dwie linie powinny zostać zastąpione przez tester: …

3
Shebang zaczynający się od `//`?
Nie jestem pewien co do następującego skryptu ( hello.go). //usr/bin/env go run $0 $@ ; exit package main import "fmt" func main() { fmt.Printf("hello, world\n") } Można wykonać. (w MacOS X 10.9.5) $ chmod +x hello.go $ ./hello.go hello, world Od początku nie słyszałem o shebang //. I nadal działa, …


5
Jak uruchomić polecenie obejmujące przekierowywanie lub przesyłanie potokowe za pomocą sudo?
Staram się postępować zgodnie z najlepszymi praktykami korzystania z sudo zamiast konta root. Korzystam z prostej operacji pliku concat, takiej jak: sudo echo 'clock_hctosys="YES"' &gt;&gt; /etc/conf.d/hwclock Nie udaje się to po prawej stronie „&gt;&gt;”, działa jak zwykły użytkownik. Dodanie dodatkowych sudos również kończy się niepowodzeniem (oczekiwane zachowanie od pipowania do …

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.