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'