Я вообще не советую использовать script
в файлах инициализации оболочки (и наш родственный сайт Unix & Linux Stack Exchange лучше подходит для более широкого вопроса о том, что вместо этого использовать), но способ избежать вашей узкой проблемы состоит в том, чтобы использовать переменную окружения в качестве сигилы, что регистрация уже ведется, и избегать начала нового сеанса, если он установлен:
if ! [ -n "$script_log" ]; then
script_log=$(date +"%m_%d_%Y_%H_%M_%S_%p.tlog")
export script_log
script "$script_log"
fi
В настоящее время нет такого ярлыка. Документация только упоминает эти три ярлыка, на которые Вы ссылаетесь (alt+slash для консоли, alt+question для справки и alt+period для нового приложения), и действительно код только содержит те ярлыки. Действительно, shoes/app.c
имеет следующие строки:
shoes_code
shoes_app_keypress(shoes_app *app, VALUE key)
{
if (key == symAltSlash)
rb_eval_string("Shoes.show_log");
else if (key == symAltQuest)
rb_eval_string("Shoes.show_manual");
else if (key == symAltDot)
rb_eval_string("Shoes.show_selector");
else
shoes_canvas_send_keypress(app->canvas, key);
return SHOES_OK;
}
Другими словами, три известных ярлыка захватывают и рассматривают особенно, в то время как любое другое нажатие клавиши отправляется в рассматриваемое приложение.
Однако может быть возможно записать Вашу собственную "обертку", которая выполняет Вашу желаемую задачу.