Псевдоним командной строки против псевдонима .bash_profile

Псевдоним командной строки против псевдонима .bash_profile

когда я создаю этот псевдоним из командной строки, все работает нормально alias ejecta='for I in 1 2 3; do /usr/sbin/diskutil unmountDisk disk$I;done'

Когда тот же псевдоним создается в .bash_profile, ОС удаляет "$I"

Это такой вопрос новичка, но мне стыдно сказать, что я не могу найти решение. Мне нужно создать скрипт и сделать так, чтобы псевдоним ссылался на него?

решение1

То, что вы пытаетесь сделать, должно сработать. $IВероятно, оценивается, когда определяется ваш псевдоним. Что, вероятно, означает, что вы где-то пропустили несколько кавычек.

Однако, без включения соответствующей части вашего .bash_profile, трудно сказать.

решение2

В вашем вопросе вы заключаете псевдоним в одинарные кавычки, что является правильным способом сделать это, чтобы отложить оценку переменной. Я предполагаю, что вы используете двойные кавычки, .bash_profileчто позволяет переменной быть оцененной немедленно. Поскольку, скорее всего, переменная не установлена ​​в этот момент, она оценивается как пустая строка.

Связанный контент