AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 664278
Accepted
Vad1mo
Vad1mo
Asked: 2015-02-03 02:32:07 +0800 CST2015-02-03 02:32:07 +0800 CST 2015-02-03 02:32:07 +0800 CST

Procurando uma maneira de agrupar um comando e fornecer seu próprio shell

  • 772

Estou trabalhando com a linha de comando executando os mesmos comandos várias vezes manualmente seguindo o mesmo padrão. Agora estou procurando uma maneira de simplificá-lo digitando o comando apenas uma vez.

Vamos dar uma olhada em um exemplo normal do docker:

docker ps
docker ps -a
docker ps -l
docker stop x 
docker start x 
docker start y 
docker logs y
docker logs -f z

Este exemplo também se aplica a muitos outros comandos, como git, brew, gulp, gcloud.

Agora estou procurando por algum tipo de shell wrapper de comando, que me permita escrever with dockerque envolva qualquer comando em um shell aninhado/sub.

Então não preciso preceder o dockercomando e apenas chamar:

>ps
# does docker ps and displays result 
>stop x
# prepends docker so docker stop x is actually executed   
CTRL+C # to exit the command wrapper 

Já existe algo assim? Eu estava pesquisando por isso, mas não consegui descrevê-lo corretamente, portanto, não encontrei nada.

linux
  • 2 2 respostas
  • 984 Views

2 respostas

  • Voted
  1. Best Answer
    shearn89
    2015-02-03T03:53:17+08:002015-02-03T03:53:17+08:00

    Você também pode definir uma função por conta própria e incluí-la em seu .bash_profileou similar:

    function with {
        echo -n "$1> "
        while read input
        do
            if [[ $input == "exit" ]]
            then
                break
            fi
            eval "$1 $input"
            echo -n "$1> "
        done
        echo
    }
    

    Exemplo de uso:

    user@host $ with git
    git> status
    # On branch master
    nothing to commit (working directory clean)
    git> exit
    
    user@host $
    

    EDIT: Essa função não faz sanitização de entrada nem nada, então use por sua conta e risco etc...

    • 5
  2. Andrew Schulman
    2015-02-03T02:49:16+08:002015-02-03T02:49:16+08:00

    Você pode escrever um bash ou outro script de shell para fazer isso. Uma alternativa fácil e quase tão boa seria apenas definir aliases curtos e anexá-los, por exemplo

    alias d=docker
    alias g=gcloud
    

    e assim por diante. Então corra

    d ps
    d ps -a
    

    e assim por diante, o que dificilmente dá mais trabalho do que digitar apenas os comandos.

    • 1

relate perguntas

  • Como descobrir detalhes sobre hardware na máquina Linux?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve