Ну, это неуклюже, но вы могли бы напечатать
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