Bash: Como criar strings substitutas permanentes em comandos Bash?

1

Eu tenho que fazer uma das vezes: ssh really-really-long-hostnameN onde N é um dos {10001-10099}

Eu realmente gostaria de poder fazer isso: ssh myhostN

Eu tenho .bashrc entry: export myhost="really-really-long-hostname"

Mas então eu tenho que fazer: ssh ${myhost}N

que é uma melhoria enorme, mas não é bem o que eu queria. Existe uma maneira de fazer uma substituição onde eu possa fazer: ssh myhostN ?

    
por DDauS 16.10.2016 / 09:53

3 respostas

1

Para isso eu escreveria uma função:

s() {
    ssh "really-really-long-hostname$1"
}

Em seguida, ligue da seguinte forma:

s 10037

Leitura adicional:

por 16.10.2016 / 10:10
1

Edite um arquivo ~/.ssh/config e adicione entradas como essa para cada host:

Host myhostN
    HostName    really-really-long-hostname100N

Defina as permissões para este arquivo para 0600:

chmod 0600 ~/.ssh/config

Em seguida, você poderá usar os comandos relacionados myhostN with ssh ( sftp , scp , etc.) em vez de really-really-long-hostname100N .

    
por 16.10.2016 / 10:50
0

Eu resolvi assim: Edite seu arquivo /etc/hosts local. Adicionar IP e nome assim

216.58.211.14    my.google0
216.58.211.3     mygoogle1

.. no shell

ping mygoogle1

ssh my.google0

funcionará na máquina local

Outra maneira é usar aliases.

Adicionar a ~/.bashrc

alias ssh1='ssh -2 somehost.foo -l bar'

da próxima vez, quando o bash for executado, você se conectará digitando ssh1 .

    
por 16.10.2016 / 11:42

Tags