第一次做shell脚本的安装脚本。内容很简单:写一个桌面快捷方式(*.desktop)和一键安装的脚本(install.sh)解压安装一堆其他脚本。

没想到做起来一堆问题。

第一个问题是桌面快捷方式进不去,后来查了下发现图形界面是普通用户,权限不够,需要在把快捷方式复制到时,chmod 777 *.desktop。

第二个问题是安装的脚本需要root权限。我原以为运行脚本的脚本有root权限,那么被运行脚本应该也有root权限,后来发现我想多了。而且桌面快捷方式启动的脚本是图形界面,不在终端里运行,没办法登陆root或者sudo输入密码。

解决的方法是在启动脚本里把密码读到一个变量里,传递参数给其他脚本使用。

第三个问题是有些脚本单行命令有很多个,但是sudo只能给第一个命令权限,报错 bash:not denied

解决办法是sudo sh -c "command" command可以是任意命令组合

最后,有些基础的shell命令也需要root权限,要注意给权限。