когда я создаю этот псевдоним из командной строки, все работает нормально 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
что позволяет переменной быть оцененной немедленно. Поскольку, скорее всего, переменная не установлена в этот момент, она оценивается как пустая строка.