printf% q powinien zacytować ciąg. Jednak po wykonaniu w skrypcie, usuwa spacje.
Polecenie:
printf %q "hello world"
Wyjścia:
hello\ world
która jest poprawna.
Ten skrypt:
#!/bin/bash
str="hello world"
printf %q $str
wyjścia:
helloworld
co jest źle.
Jeśli takie zachowanie jest rzeczywiście oczekiwane, jaka alternatywa istnieje w skrypcie do cytowania łańcucha zawierającego dowolną postać w taki sposób, że można go przetłumaczyć z powrotem na oryginał za pomocą wywoływanego programu?
Dzięki.
oprogramowania GNU bash, wersja 4.1.5 (1) -release (i486-pc-linux-gnu)
edycja: rozwiązany, dzięki.
usunął 'SOLVED' prefiksu w tytule stanowisko. W StackOverflow.com, nie oznaczaj problemu jako rozwiązanego przez prefiksowanie nagłówka "ROZWIĄZYWANIE" Możesz zaakceptować odpowiedź lub zamieścić własną odpowiedź i zaakceptować ją, klikając znak zaznaczenia pod przyciskami do głosowania w pobliżu odpowiedzi, która działała dla Ciebie. –