>

존재하는 모든 사용자의 홈 디렉토리를 반환하고 결과를 bash 변수에 저장하는 명령을 실행하고 싶습니다

res=$(ssh -q -o LogLevel=error user@server << 'EOF' 
t=$(awk -F':' '{ if ( $3 >= 500 ) print $1 }' /etc/passwd)
readarray -t res_array <<< "${t}"
UHOME="/home"
for u in "$res_array"
do
  _dir="${UHOME}"/"${u}"
  if [[ -d "$_dir" ]]
then
    echo "$u"
  fi
done
EOF
)

로컬에서 코드는 작동하지만 원격 서버에서는 작동하지 않습니다. 결과 $home을 변수에 저장하기 위해 echo $u를 사용했습니다 : (


  • 답변 # 1

    이 작업을 수행하십시오 :

    res=$(ssh -q -o LogLevel=error user@server << 'EOF' 
    t=$(awk -F':' '{ if ( $3 >= 500 ) print $1 }' /etc/passwd)
    readarray -t res_array <<< "${t}"
    UHOME="/home"
    for u in "${res_array[@]}" # change this line
    do
      _dir="${UHOME}"/"${u}"
      if [[ -d "$_dir" ]]
    then
        echo "$u"
      fi
    done
    EOF
    )
    
    

관련 자료

  • 이전 javascript - 부모의 제목에 따라 div의 id를 왼쪽으로 변경하는 스크립트의 알 수없는 구문 오류
  • 다음 javascript - 내 좋아요/싫어하는 시스템이 예상 PHP로 작동하지 않습니다