При запуске сценария оболочки он теряет все переменные среды, которые вы определили, но не экспортировали. Когда вы запускаете свой скрипт под sudo, sudo очищает окружение за исключением нескольких переменных.
Возможно, ikec
полагается на отсутствующую переменную окружения или, возможно, ikec
, выполняемый сценарием, не тот же, возможно, из-за изменения PATH или псевдонима.
Кстати, я бы не стал использовать для этого сценарий. Я бы использовал псевдоним или функцию. В вашем ~/.profile
или ~/.bash_profile
(в зависимости от того, что вы используете) попробуйте:
alias vpn-connect='ikec -r "<shrewsoft vpn connection name>" \
-u "john" -p "<password>" -a'
Тогда вы можете просто подключиться с помощью
$ vpn-connect
Однако, в комментариях о паролях говорится в файлах хорошо взяты. Ищите способ подключения к вашему vpn без предоставления пароля. Если вы не можете, вы можете просто оставить эту опцию вне псевдонима и позволить ike c запросить у вас ее.