su - root -c切换到root并获取root的环境变量及执行权限并执行命令

1、su root 和 su - root 的区别

su 默认切到 root,su 与su - 的区别:

  • su 是不改变当前变量
  • su - 是切换到用户的变量
  • su只能获得root的执行权限,不能获得环境变量,而su - 是切换到root并获得root的环境变量及执行权限

2、su - user -c

切换用户只执行一条命令的可以用:su - oracle -c command,-c 是 command的缩写

列如 su - oracle -c “lsnrctl start”,这样的好处就是不用切换到oracle用户下去执行,如果是在脚本中就更方便了。

切换用户执行一个shell文件可以用:su - oracle -s /bin/bash shell.sh

配合EOF使用实现Oracle的自启动

#!/bin/bash

su - oracle <<EOF
lsnrctl start
sqlplus /nolog
conn /as sysdba
startup
exit
EOF

  

posted @ 2022-03-10 15:48  让我们荡起双桨!  阅读(985)  评论(0编辑  收藏  举报