Как передать аргументы скрипту, которые были сгенерированы другим скриптом

У меня есть следующий сценарий.

У меня есть скрипт Perl, который принимает идентификатор и ищет некоторые аргументы из БД. скажем, look_up_args.pl 234 печатает следующее abc 123 "something with spaces"

У меня есть другой скрипт скрипта script.sh который выполняет следующие

some_command --param1 $1 --param2 $2 --par3 "$3" ...

то, что я пытаюсь сделать, – это вызвать скрипт с аргументами

Я пробовал следующие 2 метода

 ./script.sh `./look_up_args.pl 234` ./script.sh $(./look_up_args.pl 234) 

все равно всякий раз, когда я запускаю script.sh , $3 кажется, содержит только "something" чего мой скрипт терпит неудачу. Я искал прочь, чтобы передать цитированную строку без какой-либо формы расширения оболочки / etc … Третий параметр может содержать другие специальные символы bash, но всегда будет указан.

Я бы не рекомендовал этого, но попробуйте:

 eval "./script.sh $(./look_up_args.pl 234)" 

Это должно сработать, но имейте в виду, что eval будет оценивать, что происходит с выходом look_up_args.pl , что означает, что вы оставите себя уязвимым для инъекции кода.

Лучшим вариантом будет то, что @thrig предложил в комментариях: используйте стандартизованный формат данных для передачи данных между инструментами. Даже строка с разделителями новой строки будет отличным форматом для конвейера обработки в стиле оболочки.