Pytania otagowane jako quoting

Ciągi są zwykle rozdzielane cudzysłowami, co podnosi problem radzenia sobie z ciągami zawierającymi cudzysłowy.



5
Dlaczego mój skrypt powłoki dusi się spacjami lub innymi znakami specjalnymi?
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 …

3
Jakie znaki muszę uciec, używając sed w skrypcie sh?
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 …


3
Dlaczego „ls” nagle owija przedmioty spacjami w pojedyncze cudzysłowy?
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 …

6
Co oznacza `(backquote / backtick) w poleceniach?
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
159 shell  quoting 


3
Cytowanie w $ (podstawianie poleceń) w Bash
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 …

1
Kiedy konieczne jest podwójne cytowanie?
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). …

6
Jak mogę wykonać `date` wewnątrz zadania karty cron?
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: …

7
Nie możesz użyć wykrzyknika (!) W bash?
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?

4
Dlaczego interpretacja parametrów ze spacjami bez cudzysłowów działa w podwójnych nawiasach „[[”, ale nie w pojedynczych nawiasach „[”?
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: …
85 bash  quoting  ksh  test 

7
Używanie sed do znajdowania i zastępowania złożonego łańcucha (najlepiej wyrażeniem regularnym)
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 …

3
Co to znaczy mieć w skrypcie ciąg „$-prefixed”?
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 …

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.