질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

쉘 스크립트 too many argument 에러 질문입니다.

작성자 정보

  • 석지 작성
  • 작성일

컨텐츠 정보

본문

#!/bin/bash
a=0;
while [ $a -le `cat /etc/passwd | wc -l` ];
do
    a=$(expr $a + 1)
    echo "$a"
if [ `cat /etc/passwd | awk -F":" '{print $3}' | awk 'NR==$a'` -gt 0 ]
    then
        echo "0보다큰놈"
    else
        echo "0인놈"
fi
done
echo "script complete."

현재 짠 쉘 스크립트 입니다.
/etc/passwd 의 UID를 뽑아서 UID가 0인 놈을 찾아내 취약하다고 알려주는 스크립트를 짜려 합니다.
그런데 자꾸 too many argument  에러 메세지가 자꾸 나옵니다 
어떻게 해결해야 할까요 ?

91sgw@naver.com
답변 부탁드립니다!

관련자료

댓글 2

지유파파님의 댓글

  • 지유파파
  • 작성일
if [ `cat /etc/passwd | awk -F":" '{print $3}' | awk 'NR==$a'` -gt 0 ]

위 구문에서

$a에 작은 따옴표로 감싸 보세요.

if [ `cat /etc/passwd | awk -F":" '{print $3}' | awk 'NR=='$a''` -gt 0 ]

석지님의 댓글의 댓글

  • 석지
  • 작성일
감사합니다!!! 비목 답 달리기전에 해결했지만 해결방법이 같네요!! 감사합니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,065 명
  • 현재 강좌수 :  35,969 개
  • 현재 접속자 :  267 명