Chcę znaleźć wszystkie wiersze w kilku plikach, które pasują do jednego z dwóch wzorów. Próbowałem znaleźć wzorce, których szukam, pisząc grep (foo|bar) *.txt ale powłoka interpretuje |potok i narzeka, gdy barnie jest plikiem wykonywalnym. Jak mogę grep dla wielu wzorców w tym samym zestawie plików?
Jak usunąć plik, którego nazwa pliku zaczyna się od myślnika (myślnik lub minus) -? Jestem ssh'd na zdalnym serwerze OSX i mam ten plik w moim katalogu: tohru:~ $ ls -l total 8 -rw-r--r-- 1 me staff 1352 Aug 18 14:33 --help ... Jak na świecie mogę usunąć --helpz interfejsu …
Lub przewodnik wprowadzający do solidnej obsługi nazw plików i innych ciągów znaków przekazywanych w skryptach powłoki. Napisałem skrypt powłoki, który działa dobrze przez większość czasu. Ale dusi się na niektórych danych wejściowych (np. Na niektórych nazwach plików). Wystąpił problem, taki jak: Mam nazwę pliku zawierającą spację hello world, która została …
Weź następujący skrypt: #!/bin/sh sed 's/(127\.0\.1\.1)\s/\1/' [some file] Jeśli spróbuję uruchomić to w sh( dashtutaj), to się nie powiedzie z powodu nawiasów, które należy uciec. Ale nie muszę uciekać przed odwrotnymi ukośnikami (między oktetami lub w \slub \1). Jaka jest tutaj reguła? A kiedy potrzebuję użyć {...}lub [...]? Czy jest …
Jeśli od jakiegoś czasu obserwujesz unix.stackexchange.com, powinieneś wiedzieć, że pozostawienie zmiennej niecytowanej w kontekście listy (jak w echo $var) w powłokach Bourne / POSIX (wyjątek to zsh) ma bardzo szczególne znaczenie i nie należy tego robić, chyba że masz ku temu dobry powód. To omówiono obszernie w wielu Q & …
Właśnie zauważyłem, że na jednym z moich komputerów (z uruchomionym Debianem Sid) zawsze, gdy wpisuję lsdowolną nazwę pliku ze spacjami, otaczają ją pojedyncze cudzysłowy. Natychmiast sprawdziłem swoje aliasy, ale znalazłem je nietknięte. wyatt@debian630:~/testdir$ ls 'test 1.txt' test1.txt wyatt@debian630:~/testdir$ alias alias ls='ls --color=auto' alias wget='wget --content-disposition' wyatt@debian630:~/testdir$ (obrazek) Kolejny test z …
Natrafiłem na następujące polecenie: sudo chown `id -u` /somedir i zastanawiam się: jakie jest znaczenie tego `symbolu. Zauważyłem na przykład, że chociaż powyższe polecenie działa dobrze, poniższe poniżej nie działa: sudo chown 'id -u' /somedir
Umiem pisać VAR=$VAR1 VAR=${VAR1} VAR="$VAR1" VAR="${VAR1}" wynik końcowy wydaje mi się taki sam. Dlaczego mam pisać jedno lub drugie? czy któreś z nich nie jest przenośne / POSIX?
W moim środowisku Bash używam zmiennych zawierających spacje i używam tych zmiennych w ramach zastępowania poleceń. Niestety nie mogę znaleźć odpowiedzi na SE. Jaki jest prawidłowy sposób cytowania moich zmiennych? Jak mam to zrobić, jeśli są zagnieżdżone? DIRNAME=$(dirname "$FILE") lub czy mam wycenę poza zamianą? DIRNAME="$(dirname $FILE)" lub obydwa? DIRNAME="$(dirname …
Dawna rada polegała na podwójnym cytowaniu dowolnego wyrażenia obejmującego $VARIABLE, przynajmniej jeśli ktoś chciałby, aby był interpretowany przez powłokę jako pojedynczy element, w przeciwnym razie wszelkie spacje w treści $VARIABLEzrzucałyby powłokę. Rozumiem jednak, że w nowszych wersjach powłok podwójne cytowanie nie jest już zawsze potrzebne (przynajmniej w celu opisanym powyżej). …
Chcę utworzyć plik dziennika dla skryptu cron, który ma bieżącą godzinę w nazwie pliku dziennika. Oto polecenie, którego próbowałem użyć: 0 * * * * echo hello >> ~/cron-logs/hourly/test`date "+%d"`.log Niestety pojawia się ten komunikat, gdy działa: /bin/sh: -c: line 0: unexpected EOF while looking for matching ``' /bin/sh: -c: …
Próbuję użyć polecenia curl, aby uzyskać dostęp do adresu URL z wykrzyknikiem ( !) na ścieżce. na przykład: curl -v "http://example.org/!287s87asdjh2/somepath/someresource" konsola z odpowiedzi bash: ... event not found. Co tu się dzieje? i jaka byłaby właściwa składnia, aby uniknąć wykrzyknika?
Jestem mylony z używaniem pojedynczych lub podwójnych nawiasów. Spójrz na ten kod: dir="/home/mazimi/VirtualBox VMs" if [[ -d ${dir} ]]; then echo "yep" fi Działa idealnie, chociaż ciąg zawiera spację. Ale kiedy zmienię go na pojedynczy nawias: dir="/home/mazimi/VirtualBox VMs" if [ -d ${dir} ]; then echo "yep" fi To mówi: ./script.sh: …
Mam plik o następującej treści: <username><![CDATA[name]]></username> <password><![CDATA[password]]></password> <dbname><![CDATA[name]]></dbname> i muszę stworzyć skrypt, który zmieni „imię” w pierwszym wierszu na „coś”, „hasło” w drugim wierszu na „coś”, a „imię” w trzecim wierszu na „coś innego”. Nie mogę polegać na kolejności występowania w pliku, więc nie mogę po prostu zastąpić pierwszego wystąpienia …
Właśnie widziałem to w skrypcie inicjującym: echo $"Stopping Apache" Do czego służy ten znak dolara? Moje dotychczasowe badania: Znalazłem to w podręczniku bash: ekstrawagancja Jeśli ustawione, $'string'i $"string"powołując się przeprowadzone w ${parameter}ekspansji zamkniętych w cudzysłowach. Opcja jest wyłączona domyślnie. ... ale nie znajduję żadnej różnicy między łańcuchami z $prefiksem i …
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.