while循环内的变量

while循环内的变量

$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"

相关内容