shell 脚本中 sudo su命令执行

本文介绍了在Shell脚本中使用`sudo su`切换到root用户执行命令的情况,以及为何直接使用可能导致脚本卡顿。提供了一种通过Here文档解决该问题的方法,展示了如何在保持root权限下执行多条命令。示例中包含检查配置文件内容并进行替换,以及平滑切换Nginx配置的场景。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值