Правильный способ сохранения вывода команды в переменной:
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"
В режимеvi
(set -o vi
)вы можете нажать ESC , а затем#; это добавит к текущей команде #
и безвредно введет ее --в оболочку как закомментированную команду, а также в историю команд.