zoukankan      html  css  js  c++  java
  • shell脚本里切换用户执行命令的注意事项

    功能说明:用root用户执行一个脚本,脚本里需要切换到普通用户DT去执行其他命令,其中就用到了EOF,用法如下:

    #!/bin/bash
    su - DT<<EOF
    cd apache-tomcat-7.0.54/bin
    sh startup.sh
    EOF

    当时以为su - DT就跟在交换界面执行一样会把环境也切换过去,所以在分界符EOF里用的是相对路径,结果一运行就报错:

    -bash: line 8: cd: apache-tomcat-7.0.54/bin: 没有那个文件或目录

    然后就做了个测试,脚本如下:

    #!/bin/bash
    echo "`pwd`"
    su - DT<<EOF
    echo "`pwd`"
    EOF

    结果如下:

    [root@localhost ~]# sh test.sh 
    /root
    /root

    从这里可以看出来su - DT<<只是把用户切过去了但环境变量还是root,所以在EOF分界符里的语句都得用绝对路径。

    博客同步地址:http://blog.csdn.net/u010917843
  • 相关阅读:
    查找整数
    Ling To Xml 学习之 对xml增、删、改、查
    JS获得鼠标
    xml之数据岛绑定到表格
    C# 三种序列化[转]
    编程字体
    Oracle 、C#
    提示信息Javascript
    几个好用的日历控件
    收藏网站
  • 原文地址:https://www.cnblogs.com/dengtr/p/5027373.html
Copyright © 2011-2022 走看看