У меня возникли некоторые трудности, делая переменные ведут себя так, как я хочу их ...Ввод конечного результата команды в переменную
Я пытаюсь поставить число, которое является результатом строки конвейеру команды в переменную, чтобы я мог манипулировать этим числом позже.
Моя первая строка выглядит следующим образом: DiskSizeDecimal=$(diskutil list | grep 'Automation' | awk '{print $4}')
Я тогда вход, что новая переменная в этой строке: DiskSize=$(awk 'BEGIN { rounded = sprintf("%.0f", ‘$DiskSizeDecimal’); print rounded }’)
, котор я не в конечном итоге получить результат, что нужно для $ DiskSize, потому что строка по-прежнему кажется для интерпретации $ DiskSizeDecimal как строки команд, а не числа, которое оно выводит.
Любая помощь очень ценится!
Спасибо! :)
Афина Harting
Большое спасибо за этот ответ. Это помогло мне немного упростить мой код, но я все еще сталкиваюсь с этой проблемой позже в своем коде, когда пытаюсь использовать $ DiskSize в этой строке 'FreeSpace = ((($ DiskSize'-40) * 1024))' –
Что такое значение '$ DiskSize'. Ваша последняя команда должна быть: 'FreeSpace = $ ((($ DiskSize-40) * 1024))' – anubhava
Значение $ DiskSize всегда будет отличаться в зависимости от системы, в которой работает скрипт, даже используя вашу разнесенную строку , Я до сих пор получаю ошибку «синтаксическая ошибка: неверный арифметический оператор (ошибка токена« ???? - 40) * 1024 »)' –