我正在使用以下代码更改某些文件权限:

encrypt=`sed -n '/:/,$p' $FILE_PATH_1 | cut -d':' -f2 | tr -d ' '`
local listOfPasswordChangeWS=`$SMANAGER_SCRIPT status service PasswordChangeWS | cut -f 2 -d ":"`
for node in $listOfPasswordChangeWS ; do
  ssh -q $i "cp /opt/oss/NSN-mf_swp/smx/mf-conf/was-cred.properties /opt/oss/NSN-mf_swp/smx/mf-conf/was-cred.properties.original"
  ssh -q $i "sed -i '/Password/c\com.ibm.CORBA.loginPassword=ENC($encrypt)' /opt/oss/NSN-mf_swp/smx/mf-conf/was-cred.properties "
  **ssh -q $i "chown -c omc:sysop /opt/oss/NSN-mf_swp/smx/mf-conf/was-cred.properties ; chmod 640 /opt/oss/NSN-mf_swp/smx/mf-conf/was-cred.properties"**
 # INCR=$?
  INCR=$?
  if [ "INCR" == "0" ] ; then
  NewIncr++
  fi
done


我想检查退出状态,但是由于它处于for循环中,因此我无法获取值0或1,而是返回值255。我的查询是:
1.如何检查chown -c命令的退出状态(请记住我在做ssh)
2.如何检查我的文件权限是否已更改为omc:sysop

最佳答案

尝试这个:

if ssh $HOST 'chown -c omc:sysop /opt/oss/NSN-mf_swp/smx/mf-conf/was-cred.properties ; chmod 640 /opt/oss/NSN-mf_swp/smx/mf-conf/was-cred.properties' < /dev/null
   if [ $? -eq 0 ]; then
     echo SUCCESS
   else
      echo FAIL
fi

09-04 19:58