Пожалуйста.

опрос заключается в том, как мне реализовать запрос пароля sudo после выбора при запуске этого сценария bash. Например, если пользователь выбирает поиск в каталоге /, скрипт возвращается с отклоненным разрешением. Я хотел бы выяснить, как запросить скрипт для ввода пароля, а затем продолжить работу.

#!/bin/bash
function press_enter
{
echo ""
echo -n "Press Enter to continue"
read
clear
}
selection=
where_selection=
what_selection=
until [ "$selection" = "3" ]; do
echo -e "Where would you like to search 
1- Root
2- Home
3- Exit

Enter your choice ---> \c"
read selection
case $selection in
1) cd / ; press_enter ;;
2) cd /home ; press_enter ;;
3) echo "Have a great day!" ; exit ;;
esac
echo "What is the name of the file you would like to search for?"
read -r a
if find . -name "$a" -print -quit | grep -q .
then
echo "You found the file"
else
echo "You haven't found the file"
fi
done

Ответы на вопрос(1)

Решение Вопроса

#!/bin/bash
function press_enter
{
    echo ""
    echo -n "Press Enter to continue"
    read
    clear
}
selection=
where_selection=
what_selection=
sudo=""
until [ "$selection" = "3" ]; do
    echo -e "Where would you like to search 
    1- Root
    2- Home
    3- Exit

    Enter your choice ---> \c"
    read selection
    case $selection in
        1) cd / ; sudo="sudo"; press_enter ;;
        2) cd /home ; sudo=""; press_enter ;;
        3) echo "Have a great day!" ; exit ;;
    esac
    echo "What is the name of the file you would like to search for?"
    read -r a
    if $sudo find . -name "$a" -print -quit | grep -q .
    then
        echo "You found the file"
    else
        echo "You haven't found the file"
    fi
done

В основном$sudo является пустой строкой, если пользователь не выберет 1, тогда он запустит «sudo». Лучший способ сделать это было бы иметь второйif блок, который запускает команду с sudo, если это необходимо.

 John Moon28 нояб. 2017 г., 20:08
Пожалуйста.
 Lilcomet28 нояб. 2017 г., 20:06
Спасибо! Это, кажется, сделал свое дело :)

Ваш ответ на вопрос