3

Я ищу простой скрипт, который будет делать следующее. Может ли кто-нибудь сделать снимок (+ если загадочно, объясните, пожалуйста, что он делает), или дайте мне несколько советов, чтобы я мог запустить это сам?

Я хочу запустить приложение с графическим интерфейсом в каталоге Applications из командной строки, указав его параметры при необходимости:

$> launch Foobar arg1 arg2 arg3

Что должен сделать скрипт запуска оболочки:

1) Прочитайте файл конфигурации, который выглядит примерно так:

/Applications/$0.app
/Applications/$0
/Applications/**/$0.app
/Applications/**/$0

2) Попробуйте сопоставить первый аргумент ("Foobar") в этом случае с каждой строкой файла конфигурации по порядку, где «*» представляет любую последовательность символов в сегменте пути и «**» представляет любой сегмент пути, и $0 представляет название программы. Так что в этом случае он ищет Foobar.app и Foobar в каталоге Applications и любых его подкаталогах.

3) Выполните полученную команду с указанными оставшимися аргументами ("arg1", "arg2", "arg3")

Звучит просто, но я слишком много новичков со сценариями оболочки на данный момент. Я могу в конечном итоге использовать JSDB, так как я знаю, как его использовать. Я просто не уверен, как указать, что скрипт, называемый "запуск", должен запускать программу JSDB, или совместим ли он с этим.

Конкретный вариант использования: если я нахожусь в каталоге в командной строке, я часто хочу сделать одно из следующего:

  • Запустите TextEdit, чтобы создать новый файл с именем X
  • Запустите TextEdit, чтобы открыть файл с именем X
  • Запустите {назовите вашу любимую программу}, чтобы создать или открыть файл с именем X
  • Откройте окно Finder в этом каталоге

В частности, вчера я хотел отредактировать свой файл Mercurial .hg/hgrc, и мне потребовалось вечное время, чтобы понять, как, поскольку .hg - это каталог, который скрыт от диалоговых окон открытия файлов графического интерфейса пользователя. Я до сих пор не помню, как я получил его на работу.

2 ответа2

6

"open" - это команда, которую вы хотите. Используйте это, чтобы увидеть открытые варианты

open -h

Вы увидите, что чтобы открыть что-то в textedit, просто используйте -e

open -e foo.txt

если он не существует, просто "коснитесь" файла и откройте его:

touch foo.txt 
open -e foo.txt

Существуют и другие приложения (например, textmate), которые, на мой взгляд, являются лучшими графическими редакторами, которые устанавливают свои собственные команды командной строки (например, mate), которые могут автоматически создавать файлы.

Чтобы открыть текущий файл с помощью редактора по умолчанию, просто не передавайте никаких переключений. Так что, если файлы .txt связаны в вашей системе с TextEdit, просто с помощью «open foo.txt» должно работать. Поскольку каталоги автоматически связаны с Finder, просто используйте

open .

открыть текущий каталог в Finder.

3

Один из быстрых способов запуска приложения с графическим интерфейсом из Терминала - просто использовать open -a AppName . Но вы не можете передавать аргументы командной строки таким образом.

Однако, кажется, что меньшинство программ даже принимает аргументы командной строки, было бы сумасшествием требовать от пользователя написать такой скрипт, чтобы просто использовать их. Приложения GUI, которые принимают аргументы командной строки, обычно имеют сценарии оболочки в PATH для их обработки, например mvim .

Не могли бы вы привести более конкретный пример того, чего, как вы надеетесь, достигнет этот сценарий?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .