shell脚本中切换用户执行相应的命令或者shell脚本的方法

通常在执行自动化过程中可能需要将root用户切换到其他用户进行执行,如:oralce

但是,执行的命令又要回到root用户下,继续执行root用户下的其他命令。

此时需要了解 su 命令中的参数 -c  或 -s

比如:

# su - oracle -c "pwd"
/home/oracle

su - oracle -s /bin/sh test.sh

此时执行的test.sh中相关命令要在bin/sh下,换句话说,bin/sh支持的命令才能执行。

当然我们可以将结果重定向到其他的文件中,执行后对文件再次进行分析,找到我们自动化执行的所需结果。

当然我们可以编辑一个shell脚本进行用户切换的执行。

如:vi test.sh输入下面内容后

#!/bin/bash
su - test <<EOF
pwd;
exit;
EOF

按[Esc]键,输入:wq,回车保存退出。

之后chmod 777 test.sh

执行:sh test.sh 或 . test.sh 或 ./test.sh

OK!问题得以解决。

原文地址:https://www.cnblogs.com/wozijisun/p/4707260.html