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