bashr c w / awk печать псевдонимов проблема экранирования кавычек - PullRequest
0 голосов
/ 18 апреля 2020

Ниже команда работает отлично, как мне бы хотелось. Однако внутри .bashr c он не запускается из-за завершения строк. Любой совет рад:)

ps aux | awk '{print $4 "%\t" int($6/1024) " MB\t" $11}' | sort -n

Я просто пытаюсь добавить что-то вроде: alias memusage='command' или function memusage { command }

Ответы [ 3 ]

0 голосов
/ 18 апреля 2020

Чтобы сохранить и псевдоним memusage, и оригинальные команды, вы можете поместить это в .bashr c:

alias memusage="$(cat << 'EOF'
ps aux | awk '{print $4 "%\t" int($6/1024) " MB\t" $11}' | sort -n
EOF
)"
0 голосов
/ 19 апреля 2020

Вот как определить его как функцию:

memusage() {
    ps aux | awk '{print $4 "%\t" int($6/1024) " MB\t" $11}' | sort -n
}

Если вы определяете его в одной строке, вам необходимо использовать точку с запятой перед закрывающей скобкой:

memusage() { ps aux | awk '{print $4 "%\t" int($6/1024) " MB\t" $11}' | sort -n; }

Обратите внимание, что function ключевое слово - нестандартный башизм; стандартное определение функции просто имеет () после имени.

0 голосов
/ 18 апреля 2020

Для alias замените внутренние ' s на '"'"' s:

$ alias memusage='ps aux | awk '"'"'{print $4 "%\t" int($6/1024) " MB\t" $11}'"'"' | sort -n'

Проверка:

$ memusage | grep MEM
%MEM%   0 MB    COMMAND
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...