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

  • 相关阅读:
    uva 10129
    年化利率
    house买房原理,2019,第一版
    car二手车购买原理
    car购车翻译篇
    car配置篇
    健身原理
    语法学习,从句
    语法学习,简单语句
    名词解释
  • 原文地址:https://www.cnblogs.com/tuzkee/p/3490524.html
Copyright © 2020-2023  润新知