$RANDOM
다음 출력을 생성하고 이를 모두 파일과 변수에 쓰는 데 사용하고 싶습니다 .
123
24234
758
4893
내 시도는 다음과 같습니다. 그러나 그 중 어느 것도 성공하지 못했습니다. 나는 노력했다리디렉션printf
to read
및 then 의 표준 출력리디렉션에file
$ read var < printf "%s\n" $RANDOM $RANDOM $RANDOM $RANDOM > file
나도 시도했다관로printf
read
그때 까지 의 표준 출력리디렉션에게 file
:
$ printf "%s\n" $RANDOM $RANDOM $RANDOM $RANDOM | read var > file
내 문제가 무엇인지 이해하도록 도와줄 수 있는 사람이 있나요?
답변1
read
입력을 받아 변수에 할당하는 데 사용됩니다. 출력이 생성되지 않으므로 리디렉션은 빈 파일만 생성합니다.
당신은 그것을 사용할 수 있습니다tee
주문하다대신에. 이는 stdin에서 입력을 받아 stdout 및 하나 이상의 파일에 출력을 씁니다.
변수 할당을 사용하면 tee
다음과 같은 작업을 수행할 수 있습니다.
$ variable=$(printf "%s " $RANDOM $RANDOM $RANDOM $RANDOM | tee variable.txt)
출력이 한 줄에 있도록 요청했기 때문에 "%s"를 사용했습니다.
그런 다음 다음을 제공합니다.
$ echo $variable
31738 28009 6462 15565
$ cat variable.txt
31738 28009 6462 15565
답변2
그냥 해:
var="$RANDOM
$RANDOM
$RANDOM
$RANDOM
$RANDOM"
printf '%s\n' "$var" > file
또는 스칼라 변수에 줄바꿈으로 구분된 목록을 저장하는 대신 숫자를 배열의 요소로 사용하려는 경우:
var=("$RANDOM" "$RANDOM" "$RANDOM" "$RANDOM" "$RANDOM")
printf '%s\n' "${var[@]}" > file