1、为什么需要在shell脚本中使用sudo su
有时候我们需要切换到root用户下执行相关命令,但是如果直接在shell 脚本中执行 sudo su 命令,shell 脚本会一直卡顿在 sudo su 这一行,后续的必须手动执行 exit, 退出 root 用户后才能执行
2、需要熟悉的命令
命令1: 可以用于变量的赋值
sudo -s
命令2: 用于在root用户下进行一系列的操作, root 用户执行的命令写在 HERE 中
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