2015-05-14 2 views
1

Я пробовал:Почему я не могу присвоить значение, возвращаемое grep переменной?

TOTAL_MEM= $(grep MemTotal /proc/meminfo | awk '{print $2}') 
TOTAL_MEM= 'grep MemTotal /proc/meminfo | awk '{print $2}'' 
TOTAL_MEM= grep MemTotal /proc/meminfo | awk '{print $2}' 

и каждый раз, когда я называю:

echo "Total memory available: " $TOTAL_MEM 

Это просто возвращает пустой .. Что я пропустил?

+6

Вы ничего не пропустили. Вы добавили дополнительное пространство (после '='). Убери это. Первая попытка была правильной, кроме этого. –

+6

'mem = $ (awk '/ MemTotal/{print $ 2}'/proc/meminfo)' лучше – anubhava

ответ

2

Cred к анубхаву для размещения этого первого, но вот хороший способ сделать это:

TOTAL_MEM=$(awk '/MemTotal/ {print $2}' /proc/meminfo) 

не работает, так как есть пространство после =

TOTAL_MEM= $(grep MemTotal /proc/meminfo | awk '{print $2}') 

Не работает, так как есть пробелы после = и неправильные цитаты. Используйте скобки или backtics. (Лучше всего использовать круглые скобки)

TOTAL_MEM= 'grep MemTotal /proc/meminfo | awk '{print $2}'' 

не работает, так как есть пространство после = и пропавших без кавычек.

TOTAL_MEM= grep MemTotal /proc/meminfo | awk '{print $2}' 
Смежные вопросы