• 获取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 $?"

  • 相关阅读:
    Django路由控制
    Django杂录
    JQuery
    php-高级计算器
    单项链表
    php解决约瑟夫环
    开灯算法问题
    PHP经典算法之背包问题
    归并排序
    php踩过的那些坑(5)浮点数计算
  • 原文地址:https://www.cnblogs.com/tuzkee/p/3490524.html
Copyright © 2020-2023  润新知