Crie um alias para imprimir um comando em vez de executá-lo

2

Estou apenas começando a personalizar meu perfil bash e estou imaginando como posso digitar um alias e atualizá-lo no cli sem realmente executá-lo. Usando o Curl como exemplo, eu gostaria de digitar um alias e ter algo como:

curl https://api.github.com/users/agituser

aparece na CLI permitindo que eu edite o URL. Tipo como Autokey.

    
por Moif Murphy 08.08.2015 / 15:50

1 resposta

2

Suponha que você tenha uma variável ONE que contém o url https://api.github.com/users/agituser , você pode usar o seguinte comando para definir um alias editurl que fornecerá uma saída editável:

alias editurl='read -e -i "$ONE" URL && curl $URL'

De man read :

NAME
       read - read from a file descriptor
  • %código% Se a entrada padrão é proveniente de um terminal, o Readline é usado para obter a linha
  • -e Use -i text como o texto inicial para Readline

Então TEXT vai te dar,

ron@ron:~$ editurl 
https://api.github.com/users/agituser #this line is editable

Você pode alterar o URL (que será salvo em '$ URL') ou não alterar.

Se você não alterar o URL:

ron@ron:~$editurl 
https://api.github.com/users/agituser
{
  "login": "agituser",
  "id": 787606,
  "avatar_url": "https://avatars.githubusercontent.com/u/787606?v=3",
  "gravatar_id": "",
  "url": "https://api.github.com/users/agituser",
  "html_url": "https://github.com/agituser",
  "followers_url": "https://api.github.com/users/agituser/followers",
  "following_url": "https://api.github.com/users/agituser/following{/other_user}",
  "gists_url": "https://api.github.com/users/agituser/gists{/gist_id}",
  "starred_url": "https://api.github.com/users/agituser/starred{/owner}{/repo}",
  "subscriptions_url": "https://api.github.com/users/agituser/subscriptions",
  "organizations_url": "https://api.github.com/users/agituser/orgs",
  "repos_url": "https://api.github.com/users/agituser/repos",
  "events_url": "https://api.github.com/users/agituser/events{/privacy}",
  "received_events_url": "https://api.github.com/users/agituser/received_events",
  "type": "User",
  "site_admin": false,
  "public_repos": 0,
  "public_gists": 0,
  "followers": 0,
  "following": 0,
  "created_at": "2011-05-14T10:07:35Z",
  "updated_at": "2015-04-07T14:47:28Z"
}

ou altere o URL:

ron@ron:~$editurl 
https://api.github.com/user
{
  "message": "Requires authentication",
  "documentation_url": "https://developer.github.com/v3"
}
    
por Ron 08.08.2015 / 17:25