Вам действительно нужно находиться в том же каталоге, что и исполняемый файл?Если нет, просто сделайте это:
alias cpanel-run='/home/ian/projects/electron/cpanel-linux-x64/cpanel'
Если вам нужно находиться в том же каталоге, используйте это вместо:
alias cpanel-run='cd /home/ian/projects/electron/cpanel-linux-x64/ && ./cpanel'
(&&
указывает оболочке запускатьсяпервая (cd
) команда, а затем вторая запускается только в случае успешного выполнения .
Причина, по которой исходная версия не сработала, заключается в том, что вы используете $()
ненадо.$()
выполняет его содержимое как подпроцесс , собирает выходные данные и использует их как часть командной строки.Итак, ваша версия запускает команду cd
, которая успешно переходит в каталог, но, поскольку она запускается как подпроцесс, она не влияет на вашу оболочку или любой другой процесс.Это также не производит никакого вывода.Затем другой $()
пытается запустить cpanel
(действительно ли это ./cpanel
?) В другом подпроцессе , происходит сбой, потому что его нет (выдает первое сообщение об ошибке), а также не выдает никакого вывода,Затем на основе (пустого) вывода этих двух подпроцессов оболочка пытается выполнить команду "" ""
, которая завершается неудачно, поскольку пустая строка не является допустимой командой.