Chciałbym wydrukować rozszerzenia funkcji do pliku. powiedziano mi polecenia printf „% q”, którego nauczanie jest następujący,Jak korzystać z printf "% q" w bash?
# man printf
%q ARGUMENT is printed in a format that can be reused as shell input, escaping non-print‐
able characters with the proposed POSIX $'' syntax.
Na podstawie instrukcji powyżej, próbowałem następujący kod.
#!/bin/bash
# file name : print_out_function_augs.sh
output_file='output.txt'
function print_augs() {
printf "%q " "[email protected]" >> "${output_file}"
echo >> "${output_file}"
}
print_augs a 'b c'
cat "${output_file}"
rm "${output_file}"
i uruchomić
bash print_out_function_augs.sh
Wyniki są następujące,
a b\ c
że spodziewane wyniki jak
a 'b c'
co zwiększa do oryginalnych funkcji print_augs.
Dlaczego dane wyjściowe i oryginalne rozszerzenia są różne? Czy mogę wydrukować oryginalne rozszerzenia tak jak są?
Dziękuję bardzo.
dziękuję za szczegółowe wyjaśnienie i rozwiązań. Nie mogłem sobie wyobrazić "\" w "b \ c". jest postacią ucieczki. – mora