![while循环内的变量](https://linux22.com/image/129324/while%E5%BE%AA%E7%8E%AF%E5%86%85%E7%9A%84%E5%8F%98%E9%87%8F.png)
$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"