Ответ 1
Мой совет будет использовать пользовательский файл bashrc с --rcfile
, который будет генерировать ваш .bashrc, ex:
alias admin=pagsh -c "bash --rcfile myrc"
myrc:
source ~/.bashrc
kinit [email protected]
Я хочу создать псевдоним для pagsh
, который сразу же получит мне билет администратора kerberos.
Проблема заключается в том, что я не могу понять, как указать команду для запуска bash
, но продолжайте работу с интерактивным сеансом после выполнения команды.
Мой текущий снимок:
alias admin=pagsh -c "bash -c \"kinit [email protected]\""
но bash
логически заканчивается сразу после завершения kinit
. Как я могу нажимать пользовательскую команду на прошение интерактивного сеанса bash? Мне все равно нужно запускать .bashrc нормально, поэтому я не могу использовать --rcfile
Мой совет будет использовать пользовательский файл bashrc с --rcfile
, который будет генерировать ваш .bashrc, ex:
alias admin=pagsh -c "bash --rcfile myrc"
myrc:
source ~/.bashrc
kinit [email protected]
Если вам нужна только строка или две, вы можете использовать классную bash функцию "Замена процесса" [1], чтобы обеспечить ее право на линию вызова. например (для запуска bash в конкретном виртуальном виртуальном пионе):
bash --rcfile <(echo '. ./pyvenv/bin/activate')
несколько строк не являются проблемой и не используются vars или помощники:
bash --rcfile <(echo echo "Starting at `date`"; echo cd $HOME)
[1] man bash
и найдите "Замена процесса". Обратите внимание, что это не поддерживается во всех системах, но оно должно работать на всех Linux.
Как насчет следующего?
alias admin='pagsh -c "bash -c \"kinit [email protected]; exec bash\""'
или даже
alias admin='pagsh -c "kinit [email protected]; exec bash"'
может работать. (У меня нет рабочей среды openafs, чтобы проверить ее правильно.)