$VAR2는 잘 작동하지만 $VAR1이 반환됩니다.
shuf: 잘못된 옵션 -- 'c' 자세한 내용을 보려면 'shuf --help'를 시도하세요.
#!/bin/bash
VAR1="shuf -n 1 file | head -c 5"
VAR2="shuf -n 1 file"
FILE="data"
while IFS=" " read -r COL1 COL2; do
echo "$($VAR1) $($VAR2) $COL1 $COL2"
done < "$FILE"
답변1
명령 출력을 변수에 저장하는 올바른 방법은 다음과 같습니다.
VARIABLE="$(command)"
또는 "기존 방식"(백틱 참고):
VARIABLE=`command`
귀하의 코드는 다음 형식으로 작동할 수 있습니다(직접 테스트하지는 않음).
#!/bin/bash
VAR1="$(shuf -n 1 file | head -c 5)"
VAR2="$(shuf -n 1 file)"
FILE="data"
while IFS=" " read -r COL1 COL2; do
echo "$VAR1 $VAR2 $COL1 $COL2"
done < "$FILE"