Od /unix//a/458074/674 Pamiętaj, aby używać -- podczas przekazywania dowolnych argumentów do poleceń (lub przekierowań, jeśli to możliwe). Tak sort -- "$f1"lub lepiej sort < "$f1"zamiast sort "$f1". Dlaczego warto używać --i przekierowywać? Dlaczego jest sort < "$f1"preferowany sort -- "$f1"? Dlaczego jest sort -- "$f1"preferowany sort "$f1"? Dzięki.
Gdzie indziej widziałem funkcję cd, jak poniżej: cd() { builtin cd "$@" } dlaczego zaleca się używać $@zamiast $1? Utworzyłem katalog testowy „r st” i wywołałem skrypt zawierający tę funkcję i działał on w obie strony $ . cdtest.sh "r st" ale $ . cdtest.sh r stzawiodło, czy użyłem "$@"czy"$1"
Powiedzmy, że chcę uruchomić polecenie przez Bash w następujący sposób: /bin/bash -c "ls -l" Według strony podręcznika Bash, mógłbym również uruchomić go w następujący sposób: # don't process arguments after this one # | pass all unprocessed arguments to command # | | # V V /bin/bash -c ls -- …
Mam taką linię: find /foo/bar -name '*.mp4' -print0 | xargs -i {} -0 mv -t /some/path {} ale dostałem następujący błąd: xargs: argument line too long Jestem zdezorientowany. Czy użycie tego nie xargspowinno właśnie pomóc w rozwiązaniu tego problemu? Uwaga: Wiem, że mogę technicznie użyć -execw find, ale chciałbym zrozumieć, …
Zastanawiam się, kiedy powinniśmy korzystać z rurociągów, a kiedy nie. Powiedzmy na przykład, aby zabić pewien proces, który obsługuje pliki pdf, następujące działania nie będą działać przy użyciu potoku: ps aux | grep pdf | awk '{print $2}'|kill Zamiast tego możemy to zrobić tylko na następujące sposoby: kill $(ps aux| …
Powiedzmy, że istnieje program, który przyjmuje dwa argumenty; plik wejściowy i plik wyjściowy. Co jeśli nie chcę zapisać tego pliku wyjściowego na dysk, a raczej przekazać go bezpośrednio stdininnemu programowi. Czy istnieje sposób na osiągnięcie tego? Wiele poleceń, na które natrafiłem w systemie Linux, udostępnia opcję przekazania „-” jako argumentu …
Mam ogromny spakowany gzip plik i chcę, aby program (w tym przypadku import 4s) go przeczytał. Rozpakowanie pliku zajmuje dużo czasu, a następnie wywołanie programu ze ścieżką do pliku jako argumentem. Czy można by zrobić coś takiego: zcat huge.gz | 4s-import <SOME MAGIC> gdzie SOME-MAGIC jest ścieżką do abstrakcyjnego pliku …
Chciałbym napisać skrypt bash z nieznaną ilością argumentów. Jak mogę przejść przez te argumenty i coś z nimi zrobić? Zła próba wyglądałaby następująco: #!/bin/bash for i in $args; do echo $i done
Mógłbym użyć dowolnego formularza do wykonania catmetody: cat file_name cat < file_name Wynik jest taki sam Następnie chcę wykonać manw formaciestdin man < file_name Chociaż file_namezawiera: # file_name cat Ale wyskakuje What manual page do you want?zamiast wykonać man cat. Chcę wiedzieć, dlaczego catmożna zaakceptować stdinjako argument, ale mannie mogę. …
Muszę ukryć niektóre wrażliwe argumenty w programie, który uruchamiam, ale nie mam dostępu do kodu źródłowego. Używam tego również na serwerze współdzielonym, więc nie mogę używać czegoś takiego, hidepidponieważ nie mam uprawnień sudo. Oto kilka rzeczy, które próbowałem: export SECRET=[my arguments], a następnie wezwanie do ./program $SECRET, ale to nie …
Na przykład, podczas gdy to działa: $ echo foo bla To nie: $ / bin / sh -c echo foo Podczas gdy to: $ / bin / sh -c 'echo foo; pasek echa ” bla bar Czy jest jakieś wytłumaczenie?
Jeśli chodzi o ./script.sh arg1 [arg2 arg3 ...]argumenty wiersza poleceń arg1, arg2... można dostać przez $1, $2... Ale liczba argumentów jest nie ustalone. W skrypcie powłoki chcę przekazać argumenty zaczynające się od arg2do programu, #/bin/bash ... /path/to/a/program [I want to pass arg2 arg3 ... to the program] ... Jak mogę …
Jeśli mam katalog zawierający niektóre pliki, których nazwy zawierają spacje, np $ ls -1 dir1 file 1 file 2 file 3 Mogę z powodzeniem skopiować wszystkie z nich do innego katalogu, takiego jak ten: $ find dir1 -mindepth 1 -exec cp -t dir2 {} + Jednak dane wyjściowe find dir1 …
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 3 lata temu . ls -a(Rozważam -aopcję) sudo -u username( -u= opcja, username= arg) chmod 664 my-dir( …
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.