我无法弄清楚这是怎么回事。当我在终端中运行它并输入密码时,什么也没发生,但是如果我在终端中单独运行每个命令,它就可以工作。谢谢!
#!/bin/bash sudo su; mkdir /opt/D3GO/; cp `pwd`/D3GO /opt/D3GO/; cp `pwd`/D3GO.png /opt/D3GO/; cp `pwd`/D3GO.desktop /usr/share/applications/; chmod +x /opt/D3GO/D3GO
Command sudo su启动一个交互式根外壳程序,但不会将当前外壳程序转换为根外壳程序。
sudo su
做您想要的事情的成语与此类似(感谢@CharlesDuffy的额外注意):
#check for root UID=$(id -u) if [ x$UID != x0 ] then #Beware of how you compose the command printf -v cmd_str '%q ' "$0" "$@" exec sudo su -c "$cmd_str" fi #I am root mkdir /opt/D3GO/ #and the rest of your commands
这个想法是检查当前用户是否是root用户,如果不是,请使用以下命令重新运行同一命令 su
su