zoukankan      html  css  js  c++  java
  • 获取su后执行的脚本的返回值

    错误的方式:

    # su - testuser -c "/tmp/test.sh; echo $?"
    Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
    0

    正确的方式:

    # su - testuser -c '/tmp/test.sh; echo $?'
    Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
    3

    区别就在于单引号和双引号的含义不同,双引号会进行内容解析,单引号是原样传入。可以用set -x查看:

    # set -x
    # su - testuser -c "/tmp/test.sh; echo $?"
    + su - testuser -c '/tmp/test.sh; echo 0'
    Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
    0
    # su - testuser -c '/tmp/test.sh; echo $?'
    + su - testuser -c '/tmp/test.sh; echo $?'
    Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
    3

    理解了上面内容,就能发现,其实这样也是可以的

    su - testuser -c "/tmp/test.sh; echo $?"

  • 相关阅读:
    Java加密作业
    作业
    思考动手
    方法作业
    课堂2数字输出
    字符型转整形
    课堂验证作业
    Eclipse @override报错解决
    用注解配置动态代理
    动态代理模式
  • 原文地址:https://www.cnblogs.com/tuzkee/p/3490524.html
Copyright © 2011-2022 走看看