alias de linha de comando versus alias .bash_profile

alias de linha de comando versus alias .bash_profile

quando eu crio esse alias na linha de comando, tudo funciona bem alias ejecta='for I in 1 2 3; faça /usr/sbin/diskutil unmountDisk disk$I;done'

Quando o mesmo alias é criado em .bash_profile. o sistema operacional descarta "$I"

Esta é uma pergunta para iniciantes, mas tenho vergonha de dizer que não consigo encontrar a solução. Preciso criar um script e fazer com que o alias faça referência a ele?

Responder1

O que você está tentando deve funcionar. Provavelmente $Iestá sendo avaliado quando seu alias está sendo definido. O que provavelmente significa que estão faltando algumas citações em algum lugar.

No entanto, sem incluir a parte relevante do seu .bash_profile, é difícil dizer.

Responder2

Na sua pergunta, você coloca o alias entre aspas simples, que é a maneira correta de fazer isso para atrasar a avaliação da variável. Meu palpite é que você está usando aspas duplas, .bash_profileo que permite que a variável seja avaliada imediatamente. Como é provável que a variável não esteja definida nesse ponto, ela é avaliada como uma string nula.

informação relacionada