난수를 생성하는 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 쉘이 수행하는 bash
or zsh
또는 ksh
for 가정)$RANDOM
아니요지원하다):
grep $((RANDOM%6+1)) /etc/passwd
다른 곳에서 해당 난수가 필요한 경우:
n=$((RANDOM%6+1))
grep $n /etc/passwd
나는 이것이 당신이 원하는 것이라고 생각하지 않지만 문제를 지나치게 단순화하고 의도를 잃고 있습니다.