Tôi muốn in các bổ sung của một hàm vào một tệp. Tôi được nghe kể một câu lệnh printf "% q", có hướng dẫn là sau đây,Làm thế nào để sử dụng printf "% q" trong 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.
Trên cơ sở hướng dẫn ở trên, tôi đã cố gắng sau mã.
#!/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}"
và chạy
bash print_out_function_augs.sh
Các kết quả được như sau,
a b\ c
tôi mong đợi kết quả như
a 'b c'
là augments gốc để print_augs chức năng.
Tại sao đầu ra và tăng cường ban đầu lại khác nhau? Hoặc tôi có thể in ra các bản tăng cường ban đầu như chúng được không?
Cảm ơn bạn rất nhiều.
cảm ơn bạn đã giải thích chi tiết và giải pháp. Tôi không thể tưởng tượng '\' trong 'b \ c'. là một nhân vật thoát. – mora