Это зависит от того, какую установку инициализации использует данная система Linux. Все наиболее распространенные из них используют текстовые файлы (и множество символических ссылок), чтобы определить, что нужно запускать при загрузке и в каком порядке, будь то сценарий bash для sysvinit
или systemd
] unit файл или что-нибудь для runit
или upstart
или еще чего-то.
Выясните, какая система инициализации используется, затем напишите файл инициализации соответствующего типа с необходимыми инструкциями и поместите его в соответствующий каталог.
Без дополнительной информации, чем вы предоставляете в своем гипотетическом вопросе, трудно дать более конкретный ответ.
$ HOME
- это ваш домашний каталог, а не домашний каталог пользователя, которого вы ввели. Вам нужно его посмотреть вверх:
user=moemam
user_home=$(getent passwd "$user" | cut -d: -f6)
Как я могу сделать так, чтобы при вводе quit сценарий действительно завершался?
Вот очень базовый пример:
#!/bin/bash
echo "Type in the username you'd like to lookup. Type quit to quit."
read answer
if [[ "$answer" == "quit" ]]; then
exit 1
fi
if grep -q "$answer" /etc/passwd; then
id -u "$answer"
else
echo "User $answer not found"
exit 2
fi
exit 0
Тестирование:
./readAns.sh
Type in the username you'd like to lookup. Type quit to quit.
quit
echo $?
1
./readAns.sh
Type in the username you'd like to lookup. Type quit to quit.
ntp
119
echo $?
0
./readAns.sh
Type in the username you'd like to lookup. Type quit to quit.
foo
User foo not found
echo $?
2