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 $?"

  • 相关阅读:
    $dp$模板
    字符串基础
    基础算法

    图论
    山中无甲子,寒尽不知年
    模板集合(持续更新)
    数学基础——同余
    9.19 考试总结
    1-5-17:菲波那契数列
  • 原文地址:https://www.cnblogs.com/tuzkee/p/3490524.html
Copyright © 2011-2022 走看看