2016-08-03 12 views
-1

У меня есть файловая система, как показано нижеэха-команда не работает, как ожидалось в scriptin оболочки

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

+0

Возможный дубликат [Как установить переменную, равную выходу из команды в Bash?] (http://stackoverflow.com/questions/4651437/how -to-set-a-variable-equal-to-the-output-from-a-command-in-bash) – hek2mgl

ответ

0

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

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

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 
+0

Рассмотрите возможность использования '$()' вместо backtics. – hek2mgl

+0

Это работает @yoones. Но это не дает результат, как ожидалось. Мой ожидаемый результат - напечатать /dev/mapper/rootvg-rootvol 20G 3.7G 15G 20%/ в отдельных ячейках в файле csv – zeewagon

+0

Затем подумайте о том, чтобы сделать что-то вроде: 'varone = \' df -h | awk '{print $ 1}' | tr '\ n' ';' \ '' – yoones

 Смежные вопросы

  • Нет связанных вопросов^_^