Como posso preencher automaticamente o nome de um arquivo no Linux ao passar o sinalizador remoto para o firefox?

1

Eu estou tentando abrir um arquivo usando o firefox através da linha de comando. O comando que eu corro é;

firefox -remote "openurl(file://'pwd'/filename.html)"

Eu gostaria de poder completar automaticamente o nome do arquivo que às vezes pode ser demorado ao clicar na guia.

    
por PeanutsMonkey 19.03.2013 / 23:19

1 resposta

1

Bem, é desajeitado, mas você pode digitar

sh -c 'firefox -remote "openurl(file://'pwd'/$1)"'  -  PeaTab

ou

sh -c 'firefox -remote "openurl(file://$1/$2)"'  -  'pwd'  PeaTab

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/ScoTab

e

        'pwd'/ScoTab

mas não

        $(pwd)/ScoTab

Vai a figura. YMMV. Em qualquer caso, não pode lidar com

"openurl(file://'pwd'/ScoTab

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'  ScoTab(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' ScoTab(do autocomplete) ; firefox -remote "openurl(file:/$1/$2)" Enter

    
por 19.03.2013 / 23:36

Tags