IF 문이 두 변수 echo 및 grep에서 작동하지 않습니다.

IF 문이 두 변수 echo 및 grep에서 작동하지 않습니다.

작동하지 않는 다음 코드가 있는데 이유를 모르겠습니다.

$ cat test.sh
#Variables
list_of_items=$(ls /items)
my_item=ccc

#Check if my item is on the list
if [ echo ${list_of_items} | grep -wc ${my_item} -eq 0 ]
 then echo "This item is not on the list."
fi

$ ./test.sh
./test.sh: line 6: [: missing `]'
grep: ccc: No such file or directory
grep: 0: No such file or directory
grep: ]: No such file or directory
$ 

아이디어는 단어 목록(ls)에 정확한 단어가 존재하는지 확인하는 것입니다. 도와주세요?

미리 감사드립니다.

다니엘

답변1

큰 타격:

shopt -s nullglob
matches=( /items/*"$my_item"* )
if (( "${#matches[@]}" == 0 )); then
  echo "File matching $my_item not found"
fi

답변2

폐쇄!

$ cat test.sh
#Variables
list_of_items=$(ls /items)
my_item=ccc

#Check if my item is on the list
if [ $( echo ${list_of_items} | grep -wc ${my_item} ) -eq 0 ]
 then echo "This item is not on the list."
fi

관련 정보