У мене є запис на робочому столі, який вказує на IntelliJ IDEA
IDE. Мені хотілося додати . ~/.bashrc
на початку idea.sh
сценарій, який виконується введенням на робочому столі. Суть у тому, що IDEA не взяла мою змінену SSH_AUTH_SOCK
змінну env, яку там було визначено. Тому я додав дуже простий . ~/.bashrc
на початку idea.sh
, щоб виявити, що джерело не запускається. Тепер кілька деталей.
У ~/.bashrc
мене це:
# Set GPG TTY
export GPG_TTY=$(tty)
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
# Refresh gpg-agent tty in case user switches into an X session
gpg-connect-agent updatestartuptty /bye >/dev/null
Я хотів, щоб це було запущено на початку idea.sh
, але . ~/.bashrc
це не працює, ЯКЩО я поставив цей точний код безпосередньо idea.sh
в тому самому місці, він буде працювати чудово.
Пошуковий пошук також працює, якщо я запускаю idea.sh
безпосередньо в своєму терміналі. Він не працює лише в тому випадку, якщо я запускаю його за допомогою вводу Desktop Entry. Питання на робочому столі /home/luken/.local/share/applications/jetbrains-idea.desktop
:
[Desktop Entry]
Version=1.0
Type=Application
Name=IntelliJ IDEA Ultimate Edition
Icon=/home/luken/Programy/idea-IU-182.4505.22/bin/idea.svg
Exec="/home/luken/Programy/idea-IU-182.4505.22/bin/idea.sh" %f
Comment=Capable and Ergonomic IDE for JVM
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-idea
Отже, підсумовуючи це:
Запуск idea.sh
у терміналі:
#!/bin/sh
#
# ---------------------------------------------------------------------
# IntelliJ IDEA startup script.
# ---------------------------------------------------------------------
#
. ~/.bashrc
echo "${SSH_AUTH_SOCK}" > ~/auth.txt
# ...
Вміст auth.txt
: /run/user/1000/gnupg/S.gpg-agent.ssh
ПРАВИЛЬНО .
Запуск idea.sh
за допомогою ярлика Введення на робочому столі:
#!/bin/sh
#
# ---------------------------------------------------------------------
# IntelliJ IDEA startup script.
# ---------------------------------------------------------------------
#
. ~/.bashrc
echo "${SSH_AUTH_SOCK}" > ~/auth.txt
# ...
Вміст auth.txt
: /run/user/1000/keyring/ssh
НЕПРАВНИЙ .
#!/bin/sh
#
# ---------------------------------------------------------------------
# IntelliJ IDEA startup script.
# ---------------------------------------------------------------------
#
# Set GPG TTY
export GPG_TTY=$(tty)
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
# Refresh gpg-agent tty in case user switches into an X session
gpg-connect-agent updatestartuptty /bye >/dev/null
echo "${SSH_AUTH_SOCK}" > ~/auth.txt
# ...
Вміст auth.txt
: /run/user/1000/gnupg/S.gpg-agent.ssh
ПРАВИЛЬНО .
Хтось має уявлення про те, що відбувається тут, або як це налагодити?
source
є частиною цього сценарію.
VAR="variable" executable
.