ninjalj имел правильную идею, но использование кавычек было странным, отчасти потому, что то, что запрашивает OP, на самом деле не лучший выходной формат для многих задач оболочки.На самом деле, я не могу понять, для чего предназначена эта задача, но:
function quote_args {
for i ; do
echo \""$i"\"
done
}
помещает свои аргументы в кавычках по одному на строку, что обычно является наилучшим способом подачи других программ.Вы получаете вывод в форме, которую вы не просили:
$ quote_args this is\ a "test really"
"this"
"is a"
"test really"
, но ее можно легко преобразовать, и именно эту фразу предпочитают большинство вызовов оболочки:
$ echo `quote_args this is\ a "test really"`
"this" "is a" "test really"
но если он не пройдет еще один eval
проход, дополнительные кавычки, вероятно, испортят ситуацию.Таким образом, ls "is a file"
выведет список файлов is a file
, а
$ ls `quote_args is\ a\ file`
попытается перечислить "is
, a
и file"
, которые вы, вероятно, не хотите.