以其他用户身份运行命令时,将变量保持在范围内

问题描述

|| 我正在尝试以其他用户身份运行命令并保存返回代码以进行进一步处理。 这有可能在bash中吗?
ret=99
pid=1234
su - deploy -c \"cd $PROJECT_ROOT; kill -9 `echo $pid`; ret=$?\" >> mylog.log 2>&1
echo $ret  # <= $ret still equals 99 when I want it to equal 0 or 1
    

解决方法

        不是这样的。
ret=99
pid=1234
su - deploy -c \"cd $PROJECT_ROOT; kill -9 `echo $pid`\" >> mylog.log 2>&1
ret=$?
echo $ret