su -c命令与环境变量的困惑
来源:互联网 发布:各地大数据项目 编辑:程序博客网 时间:2024/06/05 03:13
http://bbs.chinaunix.net/thread-2003718-1-1.html
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ $ORACLE_HOME/a.shthis is a.sh
[oracle@localhost ~]$
上面的命令都正常,但是下面的命令则无法运行:
[root@localhost ~]# su - oracle -c "$ORACLE_HOME/a.sh"
-bash: /a.sh: 没有那个文件或目录
[root@localhost ~]#
下面的命令也没问题:
[root@localhost ~]# su - oracle -c "ls $ORACLE_HOME"
admin Disk3 oraInventory ra_createdb.log ra_idx01.dbf ra.sql
ship_9204_linux_disk1.cpio.gz
createrauser.sql doc oui ra_createtable.log ra_initData.log scgs_ca.dmp
ship_9204_linux_disk2.cpio.gz
Disk1 jre procedurel.log ra_data01.dbf ra_rbs01.dbf scgs_km.dmp
ship_9204_linux_disk3.cpio.gz
Disk2 oradata product ra_data02.dbf ra_scgs.dmp scgs_ra.dmp temp01.dbf
[root@localhost ~]#
命令su - oracle -c "$ORACLE_HOME/a.sh"是在当前的Shell下执行的,因为root shell下面没有定义ORACLE_HOME,所以上面命令相当于su - oracle -c "/a.sh"
su - oracle -c "ls $ORACLE_HOME"中的命令 ls $ORACLE_HOME是切换到oracle用户环境下执行的,所以没问题。
整条命令su - oracle -c "$ORACLE_HOME/a.sh"是你在root的shell下敲的,
所以命令里面变量$ORACLE_HOME被替换成值,就成了su - oracle -c "/a.sh",
就是-c 后面跟着的字符串在传递给oracle前已经被处理过了,已经变成了"/a.sh";
你第二条命令里oracle用户执行的也不是 ls $ORACLE_HOME,其实执行的命令是ls,显示的是oracle用户主目录下的东东
不信你可以把oracle profile里的ORACLE_HOME改为/tmp试一下,命令su - oracle -c "ls $ORACLE_HOME"显示的内容和现在
一样,不会是/tmp下的内容
0 0
- su -c命令与环境变量的困惑
- su与su -命令的差别
- linux命令su与su-的区别
- Linux命令su- 与su的区别
- Linux的su命令与su - 命令的区别
- linux中su与su -命令的区别
- Linux下su与su -命令的本质区别
- linux中su与su -命令的区别
- Linux下su与su -命令的本质区别 .
- Linux下su与su -命令的本质区别
- Linux下su与su -命令的区别
- Linux下su与su -命令的本质区别
- Linux下su与su -命令的本质区别
- Linux下su与su -命令的本质区别
- Linux下su与su -命令的本质区别
- Linux下su与su -命令的本质区别
- Linux下su与su -命令的本质区别
- Linux下su与su -命令的本质区别
- 拓扑排序
- AndroidStudio签名
- 第十一周项目5 用二叉树求解代数表达式
- 第13周上机实践项目 - 验证算法(3)Dijkstra算法的验证
- Android: The connection to adb is down, and a severe error has occured.
- su -c命令与环境变量的困惑
- java发送邮件的测试
- 安装和使用ansible
- VoltDb 性能测试
- 通过注解实现记录日志的功能
- 编程技巧 - 封装技巧 - 1
- 严重: Exception sending context initialized event to listener instance of class org.springframework.we
- CityEngine CGA语法之双坡式屋顶函数 roofGable
- 第13周实践项目-Dijkstra算法