错误的方式:
 
 # su - testuser -c "/tmp/test.sh; echo $?"Sun Microsystems Inc.   SunOS 5.10      Generic January 20050
 
 正确的方式:
 
 # su - testuser -c '/tmp/test.sh; echo $?'Sun Microsystems Inc.   SunOS 5.10      Generic January 20053
 
  
 
 区别就在于单引号和双引号的含义不同,双引号会进行内容解析,单引号是原样传入。可以用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 20050# su - testuser -c '/tmp/test.sh; echo $?'+ su - testuser -c '/tmp/test.sh; echo $?'Sun Microsystems Inc.   SunOS 5.10      Generic January 20053
 
  
 
 理解了上面内容,就能发现,其实这样也是可以的
 
 su - testuser -c "/tmp/test.sh; echo \$?"
 
转载于:https://www.cnblogs.com/tuzkee/p/3490524.html