sakura
parece estar quebrado, mas para outros, existem dois tipos principais: aqueles que pegam um argumento depois de -e
e o tratam como uma linha de comando de shell e aqueles que recebem uma lista de argumentos e o primeiro é usado para derivar o comando para executar (nenhum shell está envolvido, portanto, recursos do shell como pipes não podem ser usados.
xterm
, como um caso especial cairá na segunda categoria se houver mais de um argumento ou o argumento for resolvido (por pesquisa em $PATH
) para um executável existente e na segunda categoria caso contrário. / p>
Então:
xterm -e 'ls | less'
Será executado o executável /usr/bin/ls | less
por exemplo (sim, um nome de arquivo com espaços e caracteres de pipe) com ls | less
como primeiro argumento, se existir, ou de outra forma (mais provável), /bin/sh
com, sh
, -c
, ls | less
caso contrário.
Na maioria dos outros terminais (e isso é recomendado também em xterm
, bem como para levantar a ambiguidade), você precisa chamar sh
explicitamente:
lxterminal -e sh -c 'ls | less'
sakura
-e
parece não estar funcionando. É -x
funciona até certo ponto. Você pode fazer:
sakura -x 'sh -c "ls | less"'
Ele parece fazer uma análise parecida com um shell do único argumento passado para -x
, dividir isso em uma lista de argumentos e depois executá-lo.
Sobre a rolagem em less
. Ele funciona em sakura
(e outros emuladores de terminal baseados em VTE) porque, quando em screen
alternativo (como se depois de emitir tput smcup
), os eventos de rolagem para baixo e para cima enviam as mesmas seqüências de escape de quando pressionar Teclas Down e Up .
Você notará que não funciona com ls | less -X
, em que smcup
não é emitido.
xterm
suporta isso como uma opção, não ativada por padrão. Você pode alterá-lo definindo o recurso XTerm.VT100.alternateScroll
como true
, por exemplo, adicionando:
XTerm.VT100.alternateScroll: true
para o seu ~/.Xdefaults
(para xterm
s iniciado nessa máquina), ou no arquivo de recursos carregado no seu servidor X (para xterm
s iniciado em qualquer lugar e conectando ao seu servidor X) ou chamando xterm
com:
xterm -xrm 'XTerm.VT100.alternateScroll: true' -e sh -c 'ls | less'