Ну, это неуклюже, но вы могли бы напечатать
sh -c 'firefox -remote "openurl(file://`pwd`/$1)"' - Pea вкладка Pea
или же
sh -c 'firefox -remote "openurl(file://$1/$2)"' - `pwd` Pea Tab Pea
Если вы собираетесь делать это на регулярной основе (без большого количества изменений), вы можете захотеть поместить это в сценарий.
PS Вы можете оставить одну из косых черт после file: потому что pwd предоставит одну.
Редактировать:
Как / почему это работает?
Интерактивная оболочка, которую вы запускаете (давайте предположим, что это bash и обозначим ее как таковую, для устранения неоднозначности) - это та, которая читает ввод вашей командной строки и выполняет такие действия, как автозаполнение, и требует, чтобы любое слово командной строки, которое автозаполнение должно выглядеть как имя файла или путь. У меня был опыт, что он может справиться
… $PWD/Sco Tab
а также
… `pwd`/Sco Tab
но нет
… $(pwd)/Sco Tab
Пойди разберись. YMMV. В любом случае, он не может справиться
… "openurl(file://`pwd`/Sco Tab
потому что это не может быть интерпретировано как имя файла или путь (если bash не может проанализировать "openurl(… вызов, который он не может).
Хитрость заключается в том, чтобы заставить его выполнить автозаполнение изолированного имени файла, а затем склеить части. Единственный способ установить $1 , $2 и т.д. Для вашей интерактивной оболочки - это ввести команду, такую как set foo bar или set -- foo bar , и это обычно не делается. Нам нужен sh в командной строке, чтобы мы могли установить его $1 , $2 и т.д., Поместив значения в его командную строку.
Таким образом, мы используем bash для автозаполнения, который предоставляет параметры командной строки для sh , а затем мы используем команду sh
'firefox -remote "openurl(file://$1/$2)"'
интерпретировать $1 и $2 , а затем «склеить кусочки».
Процесс написания этого заставил меня реализовать еще один вариант:
set `pwd` Sco Tab (сделать автозаполнение) Enter
с последующим
firefox -remote "openurl(file:/$1/$2)" Enter
Как я указывал ранее, первая команда выше устанавливает позиционные параметры ($1 и $2) для интерактивной оболочки (bash), а вторая строка использует их.
Как я уже говорил, люди обычно не устанавливают позиционные параметры своей интерактивной оболочки, но в этом нет ничего плохого - это просто необычно.
Следует отметить, что $1 и $2 будут сохранять эти значения до тех пор, пока вы не сбросите их или не выйдете из системы.
Вы должны быть в состоянии объединить две вышеупомянутые строки в одну:
set `pwd` Sco Tab (сделать автозаполнение) ; firefox -remote "openurl(file:/$1/$2)" Enter