Что делает оболочка, когда видит echo $($x >> c.txt)
, так это сначала обрабатывает подстановку команд $($x >> c.txt)
. Это будет заменено выводом команды $x >> c.txt
. $x
— это 1
в первой итерации цикла, но такой команды нет, поэтому ошибки (будут одной ошибкой для каждой итерации цикла, если у вас нет команд, соответствующих целым числам в диапазон от 1 до 10; вывод в вопросе, вероятно, усечен ).
Возможно, вы хотели сделать что-то вроде
for x in $(seq 10); do
echo "$x" >>c.txt
done
(без подстановки команд )или просто
seq 10 >>c.txt
, что имело бы эквивалентный эффект.