`< /dev/urandom tr -dc _A-Zaz-0-9`에 대한 설명 [중복]

`< /dev/urandom tr -dc _A-Zaz-0-9`에 대한 설명 [중복]

존재하다이것기사에서 다음 명령을 발견했습니다.

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32}

Bash에서는 이 표현을 본 적이 없습니다. 특히, <처음에 와 의 연결이 나를 놀라게 했습니다. 이 명령을 해석할 때 우리는 명령에서 데이터를 읽는 것입니다. 그런데 왜 첫 번째 명령입니까?/dev/urandomtr/dev/urandomtr< /dev/urandom

답변1

리디렉션 연산자는 간단한 명령의 어느 위치에나 배치할 수 있습니다(참조:쉘의 제어 및 리디렉션 연산자는 무엇입니까?— 여기서는 복합이 아닌 POSIX 의미에서 "단순"입니다.

입력 리디렉션을 먼저 배치하면 데이터 흐름을 더 명확하게 만드는 데 도움이 됩니다. 즉, 왼쪽에서 오른쪽으로 읽고, 데이터를 에서 읽고 /dev/urandom, 에서 처리 tr한 다음 으로 파이프합니다 head.

읽다

tr -dc _A-Z-a-z-0-9 < /dev/urandom | head -c${1:-32}

tr그 반대는 인수가 나올 때까지 데이터를 어디서 가져올지 알 수 없다는 의미입니다. 여기에는 명령이 많지 않지만 더 복잡한 명령을 사용하면 큰 차이가 생길 수 있습니다.

관련 정보