Это работает только в shell, потому что файл сценария имеет другую область видимости и не имеет доступа к вашим локальным функциям и псевдонимам, определенным в ваших rc файлах. А команда realpath
фактически не существует в вашей системе.
Поэтому либо установите realpath
из пакета, определите свою собственную функцию (как часть скрипта, проверьте некоторые примеры), либо найдите файл rc в вашем скрипте, где она определена (например, . ~/.bashrc
).
Вот шаги для установки realpath
, если его нет:
sudo apt-get install coreutils
brew install coreutils
На Debian или Ubuntu, похоже, realpath
должен быть установлен по умолчанию. Я проверил в недавнем Debian 8 (Jessie) и, кажется, coreutils
установлен по умолчанию.
Проверено с помощью свежих образов VM:
$ vagrant init debian/jessie64 && vagrant up --provider virtualbox && vagrant ssh
$ vagrant init ubuntu/vivid64 && vagrant up --provider virtualbox && vagrant ssh
Затем в VM:
$ type -a realpath
realpath is /usr/bin/realpath
Вместо realpath
вы также можете использовать readlink -f file
(или greadlink
), предоставляемый пакетом coreutils
.
Esto se resolvió durante una discusión en el chat de Unix y Linux .
La solución es crear un atajo para el comando
sh -c 'cd /home/Barlonium/"Python Projects" && exec idle3'
El atajo en sí mismo no puede ser solo cd... && idle3
porque no sabe cómo evaluar el &&
. El shell sh
, por otro lado, sabe cómo hacerlo.
El exec
delante de idle3
reemplazará el proceso sh
con el del proceso idle3
.
El estándar Free Desktop también dice que debería poder configurar el directorio de trabajo usando Path="/home/Barlonium/Python Projects"
para el acceso directo (No estoy seguro de cómo maneja espacios y/o comillas ), y tieneExec=idle3
(o posiblemente su ruta absoluta completa ).