Я пишу свой самый первый скрипт bash. Каждый раз, когда я запускаю его, чтобы убедиться, что он работает, все работает именно так, как я хотел бы, за исключением команды done
в самом конце. Вместо этого он зацикливается на вопросе, спрашивающем пользователя, уверены ли они, что хотят авторизовать его для внесения изменений, которые он сделает.
Поскольку я пишу сценарий впервые, я уверен, что есть более эффективные и эффективные способы выполнения действия, которое я написал, поэтому я не запрашиваю информацию по этому вопросу. Тот факт, что он делает то, что я хотел бы сделать (даже если это не может закончиться), для меня достаточно хорош в данный момент.
Вот сценарий (все, что вы видите [with backets]
- это то, что я включил только для этого SU: Вопрос, а не в самом сценарии):
#!/bin/bash
perl -e 'print "\n"x128;'
echo ' ' ; echo ' ' ;
echo "
[Omitted to make this SU:Question shorter]
⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓
TLDR the above info?
That's okay, it is also available in the included README.
⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓
"
[This does not do anything, just something neat I learned how to do...]
c=3 # seconds to wait
REWRITE="\e[25D\e[1A\e[K"
echo " First thing first... I'll need you have run this as ROOT/SU..."
while [ $c -gt 0 ]; do
c=$((c-1))
sleep 1
#echo -e " ${REWRITE}$c"
done
echo ' '
if [ $(id -u) != 0 ]; then
echo " Oops, you didn't run this as ROOT or SU! Here is the proper command:
⟹ sudo ./enable-wifi.sh ⟸
"
exit
# elevate script privileges
else
echo " ⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓
Awesome, you're ready!"
fi
while true; do
read -p "
Just to make sure... Do you wish to execute this script?
Please enter [Y/y] / [N/n] here: " yn
case $yn in
[Yy]* ) sudo modprobe -r acer-wmi ; sudo rfkill unblock all ; echo "blacklist acer_wmi" | sudo tee /etc/modprobe.d/acer-wmi.conf ; clear ; echo ' ' ; echo ' ' ; echo 'DONE!' ; echo ' ' ; echo ' ' ; echo 'The WIFI Card should be working now!' ; echo ' ' ; echo ' ';;
[Nn]* ) echo ' ' ; echo ' ⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓
You have decided to cancel, this script will end immediately
without making any changes to your HP Envy x360.!
' ; exit;;
# * ) echo "Please answer yes or no.";;
esac
done
Большое спасибо за то, что взглянули на этот вопрос и помогли мне!
~ Эв