Проблемы с вложением команды в Bash PS1

Привет всем, у меня возникают проблемы с попыткой вставить эту команду в мое приглашение bash, чтобы она обновлялась каждый раз, когда отображается приглашение. Я хотел бы, чтобы это было частью самого приглашения

free -m | tr -s ' ' '\t' | grep Mem: | cut -f3

. Предложения и идеи были бы оценены

1
задан 26 May 2016 в 21:56

1 ответ

Что вы пробовали? Вы можете определить функцию в своем ~/.bashrc, а именно:

function showmem() {
    free -m | tr -s ' ' '\t' | grep Mem: | cut -f3
}  

, а затем установить PROMPT_COMMAND Bash в эту функцию

PROMPT_COMMAND=showmem

Не забудьте source ~/.bashrc всякий раз, когда вы изменить ~/.bashrc.

4
ответ дан 23 May 2018 в 10:45
  • 1
    +1 но почему функция? Почему не просто PROMPT_COMMAND="free -m | tr -s ' ' '\t' | grep Mem: | cut -f3"? – terdon♦ 26 May 2016 в 20:13
  • 2
    Я попробовал это PS1='\u@\h\n $(free -m | tr -s ' ' '\t' | grep Mem: | cut -f3) \$' в командной строке, чтобы убедиться, что это сработало, но оно выбрало эту ошибку t | grep Mem: | cut -f3) \$: command not found. Если возможно, я хотел бы иметь возможность вставлять команду в значение PS1 в ~/.bashrc. – LinuxCyberGeek 26 May 2016 в 20:28
  • 3
    @ Alex2012 Вместо установки PROMPT_COMMAND вы можете поместить это в определение PS1 (внутри одиночных кавычек): `showmem` – wjandrea 26 May 2016 в 21:09
  • 4
    @wjandrea не могли бы вы ответить на ответ, предлагая, как мне следует это делать? – LinuxCyberGeek 26 May 2016 в 21:58

Другие вопросы по тегам:

Похожие вопросы: