Pytania otagowane jako quoting

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

2
Dodaj argumenty do 'bash -c'
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 -- …

1
Dlaczego „nie” pokazuje tego pliku?
Używając findz grep, można zlokalizować pliki, które pasują do wzorca: # find | grep error ./solr-modifiedSolr4/SolrPhpClient/phpdocs/errors.html ./error_log ./includes/classes/error_log Jednak przy użyciu findsamego pierwszego pliku nie znaleziono: # find . -name error* ./error_log ./includes/classes/error_log Dlaczego nie findlokalizuje errors.htmlpliku, gdy nie jest używany grep? Jak findwyświetla się również ten plik?

1
Jak upewnić się, że łańcuch interpolowany do podstawienia `sed` ucieka przed wszystkimi metazarami
Mam skrypt, który odczytuje strumień tekstowy i generuje plik poleceń sed, który jest następnie uruchamiany sed -f. Wygenerowane polecenia sed są następujące: s/cid:image002\.gif@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1922/g s/cid:image003\.gif@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1923/g s/cid:image004\.jpg@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1924/g Załóżmy, że skrypt generujący sedpolecenia jest podobny do: while read cid fileid do cidpat="$(echo $cid | sed -e s/\\./\\\\./g)" echo 's/'"$cidpat"'/https:\/\/mysite.com\/files\/'"$fileid"'/g' >> sedscr done Jak …
21 sed  quoting 

2
zagnieżdżone podwójne cudzysłowy w wysoko ocenianym jednym wierszu
StackOverflow odpowiedź z> 3.5K głosów dysponuje ten jeden-liner przypisywania do DIRkatalogu bieżącego skryptu bash: DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" Zaskakują mnie zagnieżdżone podwójne cudzysłowy. O ile wiem, następujące fragmenty są cytowane: "$( cd " "${BASH_SOURCE[0]}" " && pwd )" ... i wszystko inne po prawej stronie …

1
za pomocą sed z ampersand (&)
Używam sed do znajdowania i zastępowania wzorców w plikach SAS, które mam, zamiast zmieniać je indywidualnie. Problem polega na tym, że próbuję zastąpić makrozmienne, a gdy używam ampersand, nie przetwarza to poprawnie. Here's my code: sed -ie 's/user=&uid./user=&sysuserid./g' *_table_*.sas za każdym razem, gdy uruchamiam to polecenie, wydaje się, że dołącza …
19 sed  quoting  replace 

4
Jak przypisać wartości zawierające spację do zmiennych w bash za pomocą eval
Chcę dynamicznie przypisywać wartości do zmiennych za pomocą eval. Działa następujący przykładowy manekin: var_name="fruit" var_value="orange" eval $(echo $var_name=$var_value) echo $fruit orange Jednak gdy wartość zmiennej zawiera spacje, evalzwraca błąd, nawet jeśli $var_valuejest wstawiany między podwójnymi cudzysłowami: var_name="fruit" var_value="blue orange" eval $(echo $var_name="$var_value") bash: orange : command not found Jest jakiś …
19 bash  shell  quoting 

2
Jakie jest znaczenie pojedynczych i podwójnych cudzysłowów w zmiennych środowiskowych?
W moim pliku .profile zdefiniowałem niektóre zmienne środowiskowe, takie jak: MY_HOME="/home/my_user" ale zmienna nie wydaje się oceniać, chyba że usunę cudzysłowy i ponownie źródła pliku. Uważam, że cytaty są konieczne, jeśli pojawią się spacje, a pojedyncze cudzysłowy są używane, jeśli znaki ucieczki nie są pożądane. Czy ktoś może wyjaśnić znaczenie …

3
Dlaczego opcje w cytowanej zmiennej zawodzą, ale działają, gdy nie są cytowane?
Czytałem o tym, że powinienem zacytować zmienne w bash, np. „$ Foo” zamiast $ foo. Jednak podczas pisania skryptu znalazłem przypadek, w którym działa on bez cudzysłowów, ale nie z nimi: wget_options='--mirror --no-host-directories' local_root="$1" # ./testdir recieved from command line remote_root="$2" # ftp://XXX recieved from command line relative_path="$3" # /XXX …

6
Czy zmienne powinny być cytowane podczas wykonywania?
Ogólna zasada w skryptach powłoki polega na tym, że zmienne powinny być zawsze cytowane, chyba że istnieje ważny powód, aby tego nie robić. Aby uzyskać więcej informacji, niż prawdopodobnie chcesz wiedzieć, spójrz na to świetne pytanie i odpowiedzi: Implikacje bezpieczeństwa związane z zapominaniem o cytowaniu zmiennej w powłokach bash / …


2
Pojedynczy cytat w podwójnych cudzysłowach i podręcznik referencyjny Bash
W sekcji 3.1.2.3, zatytułowanej Podwójne cytaty, instrukcja Bash mówi: Umieszczanie znaków w podwójnych cudzysłowach („” ”) zachowuje dosłowną wartość wszystkich znaków w cudzysłowach, z wyjątkiem„ $ ”,„ „”, „\”, a gdy włączone jest rozszerzanie historii, „!”. W tej chwili interesuje mnie pojedynczy cytat ( '). Jego specjalne znaczenie, opisane w …
18 bash  shell  quoting 


1
Dlaczego to polecenie ffmpeg działa w bash, a nie w zsh?
Dzisiaj wróciłem do domu z pracy (uruchom bash na pudełku Ubuntu) i próbowałem uruchomić kod na moim lokalnym Arch Arch z moim ukochanym Zsh, a polecenia zawiodły? Polecenie znajduje się poniżej, a dane osobowe i adres IP zmieniły się oczywiście ffmpeg -i rtsp://user:pass@my.webserver.org:5554/my-media/media.amp?videocodec=h264 -threads 3 -vcodec copy -f segment -segment_time …
17 bash  zsh  quoting  url 

5
Używanie wygenerowanej listy nazw plików jako listy argumentów - ze spacjami
Próbuję wywołać skrypt z listą nazw plików zebranych przez find. Nic specjalnego, po prostu coś takiego: $ myscript `find . -name something.txt` Problem polega na tym, że niektóre ścieżki zawierają spacje, więc przy interpretacji argumentów dzielą się one na dwie nieprawidłowe nazwy. Zazwyczaj otaczałbym te nazwiska cudzysłowami, ale tutaj są …


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.