2017-11-28 11 views
0

私の質問は、このbashスクリプトの実行時に選択された後、sudoのパスワードを尋ねるように実装する方法です。たとえば、ユーザが/ディレクトリを検索することを選択した場合、スクリプトは許可が拒否された状態で戻ります。スクリプトのパスワードの入力を求めてから実行を続ける方法を知りたい。それは少しハックですが、あなたは、このような何かを行うことができ検索する場所を選択した後、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 

答えて

0

:ユーザーは、それは「sudoを」実行する、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は空の文字列です。これを行うより良い方法は、必要に応じてsudoでコマンドを実行するブロックをもう1つ作成することです。

+0

ありがとうございました!それはトリックをしたようだ:) – Lilcomet

+0

あなたは大歓迎です。 –

関連する問題