错误的方式:
# 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