1.为什么需要在shell脚本中使用sudo su
因为我们需要切换到root用户下执行相关命令
2.需要熟悉的命令
sudo -s
sudo su <<HERE
…
<<HERE
3.shell举例
#!/bin/bash
#应该开始切换nginx的配置文件了(实现无缝切换)
a=`sudo -s cat /usr/local/nginx/conf/nginx.conf | grep "18484" |wc -L`
if [ $a -ne 0 ]; then
sudo su <<HERE
sed -i 's/18484/28484/g' /usr/local/nginx/conf/nginx.conf
sed -i 's/18687/28687/g' /usr/local/nginx/conf/nginx.conf
cd /usr/local/nginx/sbin
./nginx -s reload
HERE
else
sudo su <<HERE
sed -i 's/28484/18484/g' /usr/local/nginx/conf/nginx.conf
sed -i 's/28687/18687/g' /usr/local/nginx/conf/nginx.conf
cd /usr/local/nginx/sbin
./nginx -s reload
HERE
fi
所以
sudo -s 可以用于变量的赋值
而
sudo su <<HERE
…
HERE
用于在root用户下进行一系列的操作