Bash: «printf% q $ str» удаляет пробелы в скриптах. (Альтернативы?)

printf% q должен заключать строку в кавычки. Однако при выполнении в сценарии он удаляет пробелы.

Эта команда:

printf %q "hello world"

выводит:

hello\ world

, что правильно.

Этот сценарий:

#!/bin/bash

str="hello world"
printf %q $str

выводит:

helloworld

что неверно.

Если такое поведение действительно ожидается, какая альтернатива существует в сценарии для цитирования строки, содержащей любой символ, таким образом, чтобы ее можно было преобразовать обратно в оригинал вызываемой программой?

Спасибо.

Программное обеспечение: GNU bash, версия 4.1.5 (1) -release (i486-pc-linux-gnu)

EDITED: решено, спасибо.

11
задан Elena 28 January 2012 в 13:17
поделиться