변수를 사용하지 않고 grep 가져오기

변수를 사용하지 않고 grep 가져오기

난수를 생성하는 echo 명령에 변수를 할당하고 있습니다.

예: n=$(echo $(( (RANDOM%6) +1)).나는 거기 있어야만 합니다 /etc/passwd.

따라서 내 구문은 다음과 같습니다.

n=$(echo $(( (RANDOM%6) +1)) | grep "$n" /etc/passwd

하지만 전체 파일 내용( /etc/passwd)을 출력으로 얻습니다. 구문 오류가 어디에 있는지 모르겠습니다.

중요한 것은 한 줄로만 출력된다는 것입니다.

답변1

두 명령을 분리하여 순차적으로 실행하고 세미콜론 대신 파이프를 사용하여 Io를 공유한 것을 확인했습니다. 노력하다

n=$(echo $(( (RANDOM%6) +1)) ; grep "$n" /etc/passwd

답변2

예: n=$(echo $(( (RANDOM%6) +1)).나는 거기 있어야만 합니다 /etc/passwd.

/etc/passwd그렇다면 1부터 6까지의 임의의 숫자가 포함된 모든 줄을 인쇄하려고 하시나요 ?

그렇지 않을까요? ( 기본 POSIX 쉘이 수행하는 bashor zsh또는 kshfor 가정)$RANDOM아니요지원하다):

grep $((RANDOM%6+1)) /etc/passwd

다른 곳에서 해당 난수가 필요한 경우:

n=$((RANDOM%6+1))
grep $n /etc/passwd

나는 이것이 당신이 원하는 것이라고 생각하지 않지만 문제를 지나치게 단순화하고 의도를 잃고 있습니다.

관련 정보