Я пишу тестовый скрипт, и в нем много повторений, и я ищу способы уменьшить это дублирование кода. Поэтому я подумал, что было бы неплохо программно создать часть команд перенаправления.
Вот минимальный пример: (В реальном скрипте я бы генерировал разные имена выходных файлов в x()
)
#!/bin/bash
set -x
x() {
echo '> out.txt 2> err.txt'
}
./someProgram $(x)
Я надеюсь, что stdout
окажется в out.txt
и stderr
в err.txt
. Но bash цитирует строку. Таким образом, результирующая команда будет ./someProgram '>' out.txt '2>' err.txt
вместо ./someProgram > out.txt 2> err.txt
.
Вот результат примера:
++ x
++ echo '> out.txt 2> err.txt'
+ ./someProgram '>' out.txt '2>' err.txt
.....
Так что есть вероятность, что '>'
и '2>'
не будет цитироваться?