Como adicionar um alias sem editar diretamente o arquivo 'bash_aliases'?

2

Existe uma maneira de adicionar um alias a partir da linha de comando sem editar diretamente o arquivo bash_aliases? Para esclarecer, como posso fazer um script bash fazê-lo sem ter que inserir algo nos moldes de nano bash_aliases para adicioná-los?

    
por evamvid 01.02.2014 / 19:26

4 respostas

4

Supondo que você esteja usando bash_aliases (não é necessário, você também pode ter apelidos definidos em .bashrc entre outros lugares), você pode simplesmente adicionar uma linha ao arquivo:

printf "alias foo='bar'" >> ~/.bash_aliases

Como alternativa, se você quiser apenas esse alias para a sessão atual, use o comando alias diretamente:

alias foo='bar'

Importante

O Bash não permite que aliases sejam expandidos (para funcionar) em scripts por padrão, você precisará ativar a opção expand_aliases :

#!/usr/bin/env bash

alias foo='echo "It works!"'
echo "  Alias defined, attempting to use without expand_aliases"
foo

shopt -s expand_aliases
echo "  Attempting to use with expand_aliases"
foo

Se eu executar o script acima, o alias foo só funcionará depois que eu ativar a opção expand_aliases :

$ a.sh
  Alias defined, attempting to use without expand_aliases
/home/terdon/scripts/a.sh: line 5: foo: command not found
  Attempting to use with expand_aliases
It works!
    
por 01.02.2014 / 19:33
1

Apenas execute o alias como você faria em bash_alias.

alias lt='ls -altrch'

Verifique usando o comando type.

type alias
lt is aliased to 'ls -altrch'
    
por 01.02.2014 / 19:31
1

Você também pode usar o HEREDOCS para adicionar várias linhas também:

(
cat <<EOF
alias ali1='cmds1...'
alias ali2='cmds2...'
EOF
) >> ~/bash_aliases

O acima pode ser copiado colado em um shell.

Resultados

$ more ~/bash_aliases 
alias ali1='cmds1...'
alias ali2='cmds2...'
    
por 01.02.2014 / 20:59
0

Como alternativa, você pode criar um novo script para fazer a inicialização. Crie um arquivo / usr / local / bin / start_node_blog com o seguinte conteúdo:

#!/bin/bash

that_long_fiddly_command_you_mentioned

Então faça

chmod +x /usr/local/bin/start_node_blog

e você pode executá-lo após a reinicialização.

    
por 02.02.2014 / 01:37