请原谅这是一个天真的问题,我不是程序员。
我有一个脚本可以在OSX上卸载程序,我希望它足以让客户面对。
例如,如果他们点击是并继续,但是然后使用^ C中止密码提示“卸载完成”仍然在终端中打印
如果不需要sudo密码,有没有办法隐藏“请输入你的密码”输出,只有在没有运行sudo时才显示。
删除通用密码钥匙串密码,有没有办法一次删除所有值,而不是像我现在一样删除它。
#!/bin/bash
red='\e[1;91m'
NC='\e[0m'
blue='\e[1;94m'
cyan='\e[1;96m'
echo
printf " Hello ${cyan}$USER${NC}, this will completely remove ${red}Application${NC} from your system"
echo
while true
do
echo
printf " Uninstall requires root permission\n Would you like to continue?\n Please enter ${blue}\"Yes\"${NC} or ${red}\"No\"${NC}:"
read -p " " yn
case $yn in
[Yy]* ) osascript -e 'tell application "Application" to quit'
security delete-generic-password -s "Application Storage" > /dev/null 2>&1
security delete-generic-password -s "Application Storage" > /dev/null 2>&1
security delete-generic-password -s "Application Storage" > /dev/null 2>&1
rm -rf /Users/$USER/Library/Application
printf "Please enter your password\n"
sudo rm -rf /Library/LaunchDaemons/com.application.helper.plist /Library/PrivilegedHelperTools/com.application.helper /Library/Application\ Support/Application/ /Applications/Application.app/
printf "\n ${blue}Uninstall ${blue}Complete \n\n${NC}"; exit;;
[Nn]* ) printf "\n ${red}Uninstall ${red}Cancelled \n\n${NC}"; exit;;
* ) echo "Sorry please try again";;
esac
done
答案 0 :(得分:1)
不要在你的脚本中放置sudo,用户应该知道什么时候需要sudo,并且应该通过使用sudo启动脚本来实际提供它。如果不允许它在权限不足的情况下自然失败。还要照顾你的其他问题。