我想编写一个shell脚本来自动化一系列命令。问题是一些命令必须作为超级用户运行,一些命令绝不能作为超级用户运行。我到目前为止做的是这样的:
@H_301_16@#!/bin/bash command1 sudo command2 command3 sudo command4
问题是,这意味着有人必须等到command1完成,然后提示输入密码,然后,如果command3需要足够长的时间,他们将不得不等待command3完成。这将是很好,如果这个人可以起来走开,然后回来一个小时后,完成。例如,以下脚本有此问题:
#!/bin/bash sleep 310 sudo echo "Hi,I'm root" sleep 310 sudo echo "I'm still root?"
我如何使它,使用户可以只是输入他们的密码一次,在开始,然后离开?
更新:
感谢您的回复。我在Mac OS X Lion上运行,并运行Stephen P的脚本,并得到不同的结果:(我还添加了$ HOME)
pair@abbey scratch$ ./test2.sh uid is 501 user is pair username is home directory is /Users/pair pair@abbey scratch$ sudo ./test2.sh Password: uid is 0 user is root username is root home directory is /Users/pair