【发布时间】:2017-08-10 02:10:34
【问题描述】:
我使用 bash 的时间不超过 6 个小时,现在我正在尝试创建一个菜单,让您可以做一些“有趣”的事情:D。
我的问题在于检查您是否处于 sudo 模式的 if 语句。 我想要三个条件:
- 如果我用 sudo 模式执行脚本,我就可以输入要复制的文件夹的路径。
- 如果我在没有 sudo 模式的情况下执行脚本,它会要求我输入密码,如果我正确地输入密码,脚本会显示 echo 和 read op 允许我写下要复制的文件夹的路径。
- 与第 2 点相同,但如果我未能通过身份验证,应用程序将自动关闭。
创建副本
2)
if [ "$EUID" -ne 1 ]
then
echo "Checking if you are in sudo mode..."
echo "Error, please insert your password:"
sudo ls /root
if [ "$EUID" -ne 1 ]
then
echo -e "\nCould not authenticate the user."
echo -e "For security reasons the application will be closed."
exit
else
echo "==============================================================="
echo -e "ALL COPIES HAVE A DEFAULT ROUTE: /home/patryk/Desktop/a/"
echo "==============================================================="
echo -e "Enter the path of the folder to be copied: "
read origin
rsync -avzh $origin /home/patryk/Desktop/a/`date-I`
fi
else
echo "==============================================================="
echo -e "ALL COPIES HAVE A DEFAULT ROUTE: /home/patryk/Desktop/a/"
echo "==============================================================="
echo -e "Enter the path of the folder to be copied: "
read origin
rsync -avzh $origin /home/patryk/Desktop/a/`date -I`
fi;;
【问题讨论】:
-
欢迎来到 SO,请展示您的编码工作。
-
是的,对不起:D.
-
你试过elif语句了吗?
-
我正要放它,但我没有放。我用了大约 5 个小时...
-
顺便说一句,您对
echo -e的大量使用似乎被误导了。你或许应该考虑改用printf。
标签: linux bash if-statement sudo su