에코를 피하는 방법은 무엇입니까? [복사]

에코를 피하는 방법은 무엇입니까? [복사]

편집하다:나는 그것이 그것과 아무 관련이 없으며 $()단지 사용의 결과라는 것을 알고 있습니다 echo *. 그래서 탈출할 방법이 필요했어요 echo.

/etc/passwd합계를 비교하여 비밀번호가 없는 사용자를 확인하는 스크립트를 작성 중입니다 /etc/shadow.

지금까지 나는 다음을 가지고 있습니다 :

cat /etc/passwd | while read -r line ; do
  user=$(echo $line | cut -d ":" -f 1)
  password=$(cat /etc/shadow | grep $user | cut -d ":" -f 2)
  echo $password
done

문제는 내 grep의 결과가 *비밀번호 필드인 경우(비밀번호가 없는 모든 사용자에 대한 경우) ls *실행되는 것 같다는 것입니다. 예를 들어:

여기에 이미지 설명을 입력하세요.

왜 이런 일이 일어나는지 혼란스러워요. 여기서 무슨 일이 일어나고 있는지 설명할 수 있는 사람이 있나요? 이미지 하단에 암호화된 비밀번호가 포함된 답변은 예상된 동작입니다. 비밀번호가 없는 항목의 경우 비밀번호를 얻고 싶습니다 *.

답변1

echo "$password"

이렇게 하면 쉘 전역 변수를 호출하지 않고도 변수(여기 *)를 삽입할 수 있습니다.

관련 정보