Bem, é desajeitado, mas você pode digitar
sh -c 'firefox -remote "openurl(file://'pwd'/$1)"' - Pea
Tab
ou
sh -c 'firefox -remote "openurl(file://$1/$2)"' - 'pwd' Pea
Tab
Se você fizer isso regularmente (sem muita variação), talvez queira colocá-lo em um script.
P.S. Você pode deixar uma das barras após o file:
porque o pwd
fornecerá uma.
Editar:
Como e por que isso funciona?
O shell interativo que você está executando (vamos supor que é bash
e se refere a ele como tal, para desambiguação) é aquele que está lendo sua entrada de linha de comando e fazendo coisas como preenchimento automático, e requer que qualquer palavra de linha de comando que o autocomplete deve parecer com um nome de arquivo ou nome de caminho. Eu tive a experiência que pode lidar com
…
$PWD/Sco
Tab
e
…
'pwd'/Sco
Tab
mas não
…
$(pwd)/Sco
Tab
Vai a figura. YMMV. Em qualquer caso, não pode lidar com
…
"openurl(file://'pwd'/Sco
Tab
porque isso não pode ser interpretado como um nome de arquivo ou nome de caminho
(a menos que bash
pudesse analisar a chamada "openurl(…
, o que não é possível).
O truque é fazer o autocomplete em um nome de arquivo isolado e, em seguida, colar os pedaços juntos. A única maneira de definir $1
, $2
, etc., para o shell interativo é digitar um comando como set foo bar
ou set -- foo bar
, e isso geralmente não é feito. Precisamos de um sh
na linha de comando para que possamos definir seus $1
, $2
, etc., colocando valores em sua linha de comando.
Portanto, usamos o bash
para fazer o autocomplete, o que fornece parâmetro (s) de linha de comando para sh
,
e então usamos o comando sh
'firefox -remote "openurl(file://$1/$2)"'
para interpretar o $1
e $2
e, em seguida, "cole os pedaços juntos".
O processo de escrever isso me fez perceber outra opção:
set 'pwd' Sco
Tab(do autocomplete) Enter
seguido por
firefox -remote "openurl(file:/$1/$2)"
Enter
Como indiquei anteriormente, o primeiro comando acima define os parâmetros posicionais ( $1
e $2
) para o shell interativo ( bash
) e a segunda linha os utiliza.
Como mencionei, as pessoas geralmente não definem os parâmetros posicionais de sua shell interativa,
mas não há nada de errado com isso - é incomum.
Deve-se notar que $1
e $2
reterão esses valores até que você os redefina, ou você sairá.
Você deve conseguir combinar as duas linhas acima em uma só:
set 'pwd' Sco
Tab(do autocomplete);
firefox -remote "openurl(file:/$1/$2)"
Enter