Bene, è goffo, ma potresti scrivere
sh -c 'firefox -remote "openurl(file://`pwd`/$1)"' - Pea
Tab
o
sh -c 'firefox -remote "openurl(file://$1/$2)"' - `pwd` Pea
Tab
Se lo farai su base regolare (senza molte variazioni), potresti volerlo inserire in uno script.
PS Potresti lasciare una delle barre dopo il file:
perché pwd
ne fornirà una.
Modificare:
Come / perché funziona?
La shell interattiva che stai eseguendo (supponiamo che sia bash
e si riferisca ad essa come tale, per chiarimento delle ambiguità) è quella che legge l'input della tua riga di comando e fa cose come il completamento automatico, e richiede che qualsiasi parola della riga di comando che i completamenti automatici devono apparire come un nome file o percorso. Ho avuto l'esperienza che può gestire
... $PWD/Sco
Tab
e
... `pwd`/Sco
Tab
ma no
... $(pwd)/Sco
Tab
Vai a capire. YMMV. In ogni caso, non può gestire
... "openurl(file://`pwd`/Sco
Tab
perché ciò non può essere interpretato come un nome file o nome percorso (a meno bash
che non possa analizzare la "openurl(…
chiamata, cosa che non può).
Il trucco è farlo eseguire il completamento automatico su un nome file isolato e quindi incollare i pezzi insieme. L'unico modo per impostare $1
, $2
ecc., Per la tua shell interattiva è digitare un comando come set foo bar
o set -- foo bar
, e questo generalmente non viene fatto. Abbiamo bisogno di una sh
sulla riga di comando in modo che possiamo impostare il suo $1
, $2
e così via, mettendo i valori sulla sua linea di comando. Quindi usiamo il bash
per eseguire il completamento automatico, che fornisce i parametri della riga di comando a sh
, e quindi usiamo il sh
comando
'firefox -remote "openurl(file://$1/$2)"'
interpretare $1
e $2
, quindi "incollare i pezzi insieme".
Il processo di scrittura di questo mi ha fatto realizzare un'altra opzione:
set `pwd` Sco
Tab(esegui il completamento automatico) Enter
seguito da
firefox -remote "openurl(file:/$1/$2)"
Enter
Come ho indicato in precedenza, il primo comando sopra imposta i parametri posizionali ( $1
e $2
) per la shell interattiva ( bash
) e la seconda riga li usa. Come ho già detto, le persone in genere non impostano i parametri posizionali della loro shell interattiva, ma non c'è nulla di sbagliato in questo - è semplicemente insolito. Va notato che $1
e $2
manterrà questi valori fino a quando non li ripristini o non ti disconnetti.
Dovresti essere in grado di combinare le due righe sopra in una:
set `pwd` Sco
Tab(esegui il completamento automatico) ;
firefox -remote "openurl(file:/$1/$2)"
Enter