Передача аргументов команде в скрипте Bash с пробелами

Я пытаюсь передать команде 2 аргумента, и каждый аргумент содержит пробелы, я пробовал экранирование пробелов в аргументах, я пробовал заключать в одинарные кавычки, я пробовал экранировать \ ", но ничего не работает.

Вот простой пример.

#!/bin/bash -xv

ARG="/tmp/a b/1.txt"
ARG2="/tmp/a b/2.txt"

ARG_BOTH="\"$ARG\" \"$ARG2\""
cat $ARG_BOTH

Я получаю следующее при запуске:

ARG_BOTH="$ARG $ARG2"
+ ARG_BOTH='/tmp/a\ b/1.txt /tmp/a\ b/2.txt'
cat $ARG_BOTH
+ cat '/tmp/a\' b/1.txt '/tmp/a\' b/2.txt
cat: /tmp/a\: No such file or directory
cat: b/1.txt: No such file or directory
cat: /tmp/a\: No such file or directory
cat: b/2.txt: No such file or directory
11
задан Dougnukem 20 January 2011 в 23:48
поделиться