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

  • 相关阅读:
    React.memo()使用教程
    React组件什么时候render
    redux-thunk使用教程
    Redux数据持久化
    Mac 中安装 nvm: 切换Node 不同版本
    上传文件类型选择
    Python获取软件安装列表
    Java读取text文件
    负载均衡
    远程调用
  • 原文地址:https://www.cnblogs.com/tuzkee/p/3490524.html
Copyright © 2020-2023  润新知