Natknąłem się na ten skrypt: #! /bin/bash if (( $# < 3 )); then echo "$0 old_string new_string file [file...]" exit 0 else ostr="$1"; shift nstr="$1"; shift fi echo "Replacing \"$ostr\" with \"$nstr\"" for file in $@; do if [ -f $file ]; then echo "Working with: $file" eval "sed …
Mam polecenie, które wyprowadza dane do stdout ( command1 -p=aaa -v=bbb -i=4). Linia wyjściowa może mieć następującą wartość: rate (10%) - name: value - 10Kbps Chcę grepować ten wynik, aby zapisać tę „szybkość” (myślę, że fajka będzie tu przydatna). Na koniec chciałbym, aby ta szybkość była wartością parametru drugiego polecenia …
Czy jest jakiś prosty sposób na przekazanie (odbiór) nazwanych parametrów do skryptu powłoki? Na przykład, my_script -p_out '/some/path' -arg_1 '5' I w środku my_script.shotrzymuj je jako: # I believe this notation does not work, but is there anything close to it? p_out=$ARGUMENTS['p_out'] arg1=$ARGUMENTS['arg_1'] printf "The Argument p_out is %s" "$p_out" …
Typowe programy uniksowe / Linux akceptują dane z wiersza poleceń jako argument count ( int argc) i wektor argumentu ( char *argv[]). Pierwszym elementem argvjest nazwa programu - po nim rzeczywiste argumenty. Dlaczego nazwa programu jest przekazywana do pliku wykonywalnego jako argument? Czy są jakieś przykłady programów używających ich własnych …
Jakiś czas temu zauważyłem, że nazwy użytkowników i hasła podane curljako argumenty wiersza poleceń nie pojawiają się w psdanych wyjściowych (chociaż oczywiście mogą pojawiać się w twojej historii bashów). Podobnie nie pojawiają się w /proc/PID/cmdline. (Można jednak określić długość połączonego argumentu nazwa użytkownika / hasło.) Pokaz poniżej: [root@localhost ~]# nc …
Mam folder z ponad milionem plików, który wymaga sortowania, ale tak naprawdę nie mogę nic zrobić, ponieważ mvcały czas wyświetla ten komunikat -bash: /bin/mv: Argument list too long Używam tego polecenia do przenoszenia plików bez rozszerzeń: mv -- !(*.jpg|*.png|*.bmp) targetdir/
Powiedzmy, że kiedy wykonam polecenie ls, wynikiem jest: file1 file2 file3 file4 Czy można wyświetlić tylko określoną kolumnę wyników, w tym przypadku plik2? Próbowałem następujących bezskutecznie: echo ls | $2 Zasadniczo wszystko, co chcę zrobić, to echo tylko drugiej kolumny, w tym przypadku chcę echo: file2
Nie sądzę, aby powłoka / narzędzia w historycznym Uniksie ani w czymś tak „najnowszym” jak 4.4BSD obsługiwane przy użyciu podwójnego myślnika (lub dwóch kolejnych łączników) jako ogranicznika końca opcji . Z FreeBSD , można zobaczyć na przykład notatki wprowadzone w rm manpages z 2.2.1 wydaniu (1997). Ale to tylko dokumentacja …
Podczas próby otwarcia ls *.txt | wc -lkatalogu zawierającego wiele plików pojawia się następujący błąd : -bash: /bin/ls: Argument list too long Czy próg tej „listy argumentów” zależy od dystrybucji lub specyfikacji komputera? Zwykle przesyłam wynik tak dużego wyniku do niektórych innych poleceń ( wc -lna przykład), więc nie interesują …
Miałem wrażenie, że maksymalna długość pojedynczego argumentu nie była tutaj problemem, tyle że całkowity rozmiar ogólnej tablicy argumentów plus rozmiar środowiska, który jest ograniczony ARG_MAX. Pomyślałem więc, że coś takiego się powiedzie: env_size=$(cat /proc/$$/environ | wc -c) (( arg_size = $(getconf ARG_MAX) - $env_size - 100 )) /bin/echo $(tr -dc …
cd - można przełączać między bieżącym a poprzednim katalogiem. Wygląda na to, że widziałem -wcześniej jako argumenty innych poleceń, choć nie pamiętam, czy -oznacza to to samo co z cd. Odkryłem, że -to nie działa ls. Jest - używany tylko z cd?
Zastanawiam się, czy istnieje ogólny sposób przekazywania wielu opcji do pliku wykonywalnego za pomocą linii shebang ( #!). Używam NixOS, a pierwsza część shebang w każdym skrypcie, który piszę, jest zwykle /usr/bin/env. Problem, z którym się wtedy spotykam, polega na tym, że wszystko, co następuje, jest interpretowane przez system jako …
Zauważyłem, że |służy do przesyłania wyników pierwszego polecenia do drugiego. Chciałbym zabić wszystkie procesy, które pasują do nazwy. Oto co zwykle robi pgrep: $ pgrep name 5089 5105 Wydaje się, że działa wiele argumentów kill: sudo kill 5089 5105 Ale to źle: pgrep name | kill Jak to zrobić poprawnie?
Czytam kilka samouczków, w jaki sposób EFI stub (efistub) ładuje jądro Linuksa. Te instrukcje często używają parametru rozruchu jądra add_efi_memmap. Zamierzonym sprzętem jest Intel x64 z 8 GB pamięci RAM. W mojej bieżącej konfiguracji jest uruchomiony program grub-efiładujący i jądro v3.13. GRUB bagażnika bez tej add_efi_memmapargumentu startowego: 23Linie BIOS-E820 zliczane …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.