Для оболочки я настоятельно рекомендую Портативное Программирование Shell и Портативные Сценарии Shell. Первое запустило Вас быстро; это кратко с превосходными примерами. Второе копается намного более глубоко в запутанности оболочки; почему вещи прокладывают себе путь, они делают. Хотя оба фокусируются на оболочке POSIX, они дадут Вам серьезное основание для любой оболочки, которую Вы принимаете решение использовать (например, удар).
Любой параметр командной строки к ядру Linux обнаружится в /proc/cmdline
. Можно поместить что-либо, что Вы любите там (как долго, это не параметр, распознанный ядром или любым из драйверов или initrd системы). Например, Вы могли создать его с необычными меню личинки и затем использовать это в сценарии запуска как /etc/rc.local
решить, что сделать с ним.
Например, добавьте a /etc/grub.d/09-xcmd
с:
#! /usr/bin/tail -n+2
menuentry 'XMBC' {
set xcmd='xcmd=xmbc'
echo 'Now select a kernel'
sleep 1
}
Затем добавьте к /etc/default/grub
:
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT \${xcmd}"
Выполненный update-grub
.
В /etc/rc.local
, Вы могли иметь:
case $(cat /proc/cmdline) in
(*xcmd=*) exec sudo -Hu marcel startx;;
esac
И в Вашем ~/.xinitrc
:
cmdline=$(cat /proc/cmdline)
case $cmdline in
(*xcmd=*)
xcmd=${cmdline##*xcmd=}
xcmd=${xcmd%% *}
"$xcmd" &
esac