bash: запускать приложение на разных консолях и использовать переменную для параметров?

#linux #bash

#linux #bash

Вопрос:

Я использую Ubuntu 16.4.

Как мне запустить исполняемый файл на отдельных консолях, где аргументы для моего исполняемого файла частично являются переменной? Я попробовал следующий код в файле * .sh, но он просто мигает консолью и завершает работу.

 #!/bin/bash

topology_path="./example_topology2/"

gnome-terminal -x bash -c "./ls_router 1 " $topology_path "testinitcost1 log1.txt; exec bash"
gnome-terminal -x bash -c "./ls_router 2 " $topology_path "testinitcost2 log2.txt; exec bash"
  

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

 gnome-terminal -x bash -c "./ls_router 0 ./example_topology/testinitcost0 log0.txt; exec bash"
gnome-terminal -x bash -c "./ls_router 255 ./example_topology/testinitcost255 log255.txt; exec bash"
  

Комментарии:

1. Просто сгенерируйте одну строку вместо того, чтобы разбивать ее на три части: «./ls_router 2 $ {topology_path}testinitcost2 log2.txt ; exec bash»

2. Спасибо, это помогло.