Пытаюсь разобраться в сценарии Linux

Это зависит от того, какую установку инициализации использует данная система Linux. Все наиболее распространенные из них используют текстовые файлы (и множество символических ссылок), чтобы определить, что нужно запускать при загрузке и в каком порядке, будь то сценарий bash для sysvinit или systemd ] unit файл или что-нибудь для runit или upstart или еще чего-то.

Выясните, какая система инициализации используется, затем напишите файл инициализации соответствующего типа с необходимыми инструкциями и поместите его в соответствующий каталог.

Без дополнительной информации, чем вы предоставляете в своем гипотетическом вопросе, трудно дать более конкретный ответ.

1
16.11.2016, 20:09
2 ответа

$ HOME - это ваш домашний каталог, а не домашний каталог пользователя, которого вы ввели. Вам нужно его посмотреть вверх:

user=moemam
user_home=$(getent passwd "$user" | cut -d: -f6)
1
27.01.2020, 23:34

Как я могу сделать так, чтобы при вводе 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
1
27.01.2020, 23:34

Теги

Похожие вопросы