команда echo не работает должным образом в сценарии оболочки

У меня есть моя файловая система, как показано ниже

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-rootvol
                       20G  3.7G   15G  20% /
tmpfs                  71G  8.0K   71G   1% /dev/shm

И мой код выглядит следующим образом:

varone = df -h | awk ' {print $1 }'
vartwo = df -h | awk ' NR == 2 {print $2","$3","$4","$5","$6 }'
echo "$varone $vartwo" >> /home/jeevagan/test_scripts/sizes/excel.csv

Я хочу экспортировать «df -h» в файл csv. Почему я напечатал только $1 в одной переменной, это означает, что в выводе 'df -h' есть место. Я хочу, чтобы он печатался в одну строку.

Когда я запускаю скрипт, он выдает ошибку, например

varone: command not found

vartwo: command not found


person zeewagon    schedule 03.08.2016    source источник
comment
Возможный дубликат Как установить переменную, равную выходу команды в Bash?   -  person hek2mgl    schedule 03.08.2016


Ответы (2)


Вы не можете ставить пробелы вокруг знака равенства, и вам нужны обратные кавычки, чтобы поместить результат вашей команды в переменную.

Попробуй это:

varone=`df -h | awk ' {print $1 }'`
vartwo=`df -h | awk ' NR == 2 {print $2","$3","$4","$5","$6 }'`
echo "$varone $vartwo" >> /home/jeevagan/test_scripts/sizes/excel.csv
person yoones    schedule 03.08.2016
comment
Рассмотрите возможность использования $() вместо бэктиксов. - person hek2mgl; 03.08.2016
comment
Это работает @yoones. Но он не дает ожидаемого результата. Мой ожидаемый результат - напечатать /dev/mapper/rootvg-rootvol 20G 3.7G 15G 20%/ в отдельных ячейках в файле csv - person zeewagon; 03.08.2016
comment
Затем подумайте о том, чтобы сделать что-то вроде: varone=`df -h | awk ' {print $1 }' | tr '\n' ';'` - person yoones; 04.08.2016

Если вы просто хотели захватить df -h

varOne=`df -h -P| awk '{print $1","$2","$3","$4","$5","$6 }'`
echo  "$varOne" >> /home/jeevagan/test_scripts/sizes/excel.csv

Про букву "П" читайте здесь

Как можно Я *только* получаю количество байтов, доступных на диске в bash?

person Arathi Senan    schedule 03.08.2016