Передача аргументов командной строки для «открытия» на Mac

12167
dtlussier

Я использую openкоманду из терминала для открытия пакета приложения и хотел бы передать аргумент командной строки в базовый исполняемый файл.

Возможно ли это с помощью команды open?

Причина, по которой я здесь вообще использую команду open, заключается в том, что она не связывает окно терминала для поддержки запущенного процесса. Есть ли альтернативные способы сделать это, кроме openкоманды?

Дополнительная информация:

Приложение, которое я хочу запустить, представляет собой программу визуализации с открытым исходным кодом (Paraview), которую я сам скомпилировал. Я знаю, что базовый исполняемый файл действительно принимает аргументы командной строки. Сам исполняемый файл находится внутри пакета приложения paraview.app/Contents/MacOS/paraview.

2
Можете ли вы дать более подробную информацию о том, какие приложения вы запускаете? Разные приложения по-разному обрабатывают аргументы командной строки (некоторые, вероятно, просто игнорируют их). Doug Harris 14 лет назад 0
@ Даг Харрис - я добавил еще немного информации к вопросу. Благодарю. dtlussier 14 лет назад 0

1 ответ на вопрос

5
NReilingh

Согласно $man open, вы можете быть успешными с$open MyApp.app --args argument1

Конечно, вы всегда можете просто запустить исполняемый файл и следовать вашей команде с амперсандом - это заменит его фон.

$/path/to/My.app/Contents/MacOS/executable argument &

Похоже, `--args` - новая опция в 10.6. dtlussier 14 лет назад 0
Следование команде с `&` действительно помещает ее в фоновый режим, но процесс остается дочерним элементом оболочки, в которой он был создан. Избежать этого - одно из преимуществ «открытого». dtlussier 14 лет назад 3
Ах, отличный момент - я не знал об этом поведении для приложений с графическим интерфейсом. NReilingh 14 лет назад 0