LINUX.ORG.RU

[bash] контентинация команды из переменных


0

1

Чтобы избежать дублирование кода, нужно дополнить команду значением из переменной.
К примеру по условию эта переменная имеет либо пустое значение, либо:
var=" > logfile.txt";

И вот нужно чтобы произошло слиянием команды:
Нечто типа:
cat file $var;
Выполнилось как:
cat file > logfile.txt


Возможно ли добиться такого средствами bash?

Это был псевдо-пример, но суть проблемы та же, нужно в определенных режимах чтобы скрипт отображал информацию либо для крона молча записывал в лог.
Дублировать код не охота, так как всего лишь нужно вывод перенаправить.



Внезапно

$ V='> file.tmp'
$ eval echo 'Hello, LOR' $V
$ cat file.tmp 
Hello, LOR
$ 
geekless ★★ ()

Да только сообразил про всем ненавистный eval, все решил проблему спасибо за подсказку.

list2009 ()

контентинация

Простите, что? Не знаете терминов, так не показывайте свою глупость — будете казаться умнее.

anonymous ()

list2009

контентинация команды из переменных

«конкатенация команд» вопрос УЖЕ решённый в bash. ваш пример будет отлично работать. В некоторых других случаях нужна дыра eval.

drBatty ★★ ()
Ответ на: комментарий от list2009

Да только сообразил про всем ненавистный eval

Рано или поздно наступишь на грабли с пробелами в параметрах команды. Лучше сразу собирать параметры в массив. Если претят башизмы, в посиксе есть один массив — $@, который можно изменять командой set.

const86 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.