Comando para enviar ao prompt atual

3

Existe algum comando que enviará texto para o prompt de comando (próximo)?

Eu gostaria de escrever uma função que, após a execução, executará alguns comandos e "sugira" o próximo comando a ser executado.

~/Desktop $ foo
~/Desktop $ some_new_command_which_user_did_not_enter
    
por Garrett 22.01.2015 / 22:42

2 respostas

3

Tente isto:

xvkbd -xsendevent -text ls

Verifique o link

    
por 22.01.2015 / 22:53
0

Qualquer shell compatível com POSIX implementará um modo de edição de comando vi , que pode ser ativado como set -o vi e desabilitado como set +o vi . Um modo de edição vi irá distinguir entre os modos inserir e comando . Cada prompt deve usar como padrão o modo entrada , mas pressionar a tecla ESC mudará os contextos para o modo comando .

Alguns recursos relevantes deste modo incluem:

  • %código%
    • Redesenha a linha de comando atual. Posicione o cursor no mesmo local na linha redesenhada.
  • %código%
    • Insira o caractere <control>-L no início da linha de comando atual e trate a linha de edição resultante como um comentário. Esta linha deve ser inserida no histórico de comando; veja # .
  • %código%
    • Exiba as possíveis expansões de palavras da shell (consulte Expansões do Word) do bigword na posição atual da linha de comando.
  • %código%
    • Insira o valor do alias chamado _letter . A letra do símbolo representa um único caractere alfabético do conjunto de caracteres portátil; implementações podem suportar caracteres adicionais como uma extensão. Se o '#' _letter contiver outros comandos de edição, esses comandos serão executados como parte da inserção. Se nenhum fc _letter estiver habilitado, este comando não terá efeito.

Observação: os efeitos de = são recursivos e caracteres especiais podem ser ignorados para efeito de entrada literal com @letter

  • alias

    • Defina a linha de comando atual como a linha de comando anterior do countth no histórico do comando do shell. Se count não for especificado, o padrão será 1. O cursor deve estar posicionado no primeiro caractere do novo comando. Se um comando alias ou @_[letter] for recuar além do número máximo de comandos em vigor para este shell (afetado pela variável de ambiente CONTROL+V[CHAR] ) , o terminal será alertado e o comando não terá efeito.
  • [count]- movimento

    • Yank (isto é, copiar) os caracteres da posição atual do cursor para a posição resultante do comando motion no save buffer . Um número contagem deve ser aplicado ao comando de movimento. Se o comando de movimento se mover em direção ao início da linha de comando, o caractere sob a posição atual do cursor não será incluído no conjunto de caracteres arrancados. Se o comando de movimento for k , toda a linha de comando atual será puxada para o buffer de salvamento. A posição atual do cursor deve permanecer inalterada. Se a contagem for maior que o número de caracteres entre a posição atual do cursor e o final da linha de comando para a qual o comando de movimento moveria o cursor, isso não será considerado um erro; todos os personagens restantes no intervalo acima mencionado serão arrancados.
  • -

    • Arranque os caracteres da posição atual do cursor até o final da linha no buffer de salvamento. A posição atual do personagem deve permanecer inalterada.
  • $HISTSIZE

    • Coloque uma cópia do conteúdo atual do buffer de salvamento após a posição atual do cursor. A posição atual do cursor deve ser avançada até o último caractere colocado no buffer de salvamento. Uma contagem deve indicar quantas cópias do buffer de salvamento devem ser colocadas.
  • [count]y

    • Coloque uma cópia do conteúdo atual do buffer de salvamento antes da posição atual do cursor. A posição atual do cursor deve ser movida para o último caractere colocado no buffer de salvamento. Uma contagem deve indicar quantas cópias do buffer de salvamento devem ser colocadas.

Muitos efeitos semelhantes podem ser obtidos por meio de editores de linha específicos do shell (como o y ' Y ' [count]p comando via [count]P ou o bash % licenciado pelo BSDreadline) .

    
por 24.01.2015 / 00:18