Как кодировать дефис в команде открытия терминала Bash?

713
Luc Bloom

Я пытаюсь написать небольшой скрипт, который запускает Beyond Compare, когда я делаю SVN diff. Я получил это работает до сих пор:

open -a /Applications/Beyond\ Compare.app "$6" "$7" 

Чтобы получить полную функциональность, мне нужно добавить аргументы с дефисом (-, тире, знак минус)

open -a /Applications/Beyond\ Compare.app "$6" "$7" -title1="$3" -title2="$5" -readonly 

Но когда я это делаю, команда open интерпретирует дефисы как флаги для себя и завершается с:

open: invalid option -- i usage: ... 

Я попытался "процитировать" всю команду или - избежать опций. Что я должен сделать, чтобы получить дополнительную функциональность?

2
Я не знаком с OS X, но так как вы, кажется, используете bash: вы не можете избежать тех, у кого есть обратный удар? Например, используйте `open -a / Applications / Beyond \ Compare.app" $ 6 "" $ 7 "\ -title1 =" $ 3 "\ -title2 =" $ 5 "\ -readonly`? Hennes 9 лет назад 0

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

0
chaos

Смотрите открытую справочную страницу:

 --args All remaining arguments are passed to the opened application in the argv parameter to main(). These arguments are not opened or interpreted by the open tool. 

Итак, ваша команда будет выглядеть так:

open -a /Applications/Beyond\ Compare.app "$6" "$7" --args -title1="$3" -title2="$5" -readonly