BASH вывод результата команды linux в переменной PS1 - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь изменить командную строку ps1, чтобы распечатать содержимое команды pwd, а также результат команды du. Я попытался добавить это к моей переменной PS1 в моем файле .bashr c

PS1='\[\033[01;32m\]\w\$(du -s `echo $PWD` 2>/dev/null | awk '{printf $1}')\[\033[00m\]\$ '

после запуска источника ~ / .baashr c Я ожидал, что получится что-то вроде:

/home/some_user/ XXXX (the number returned from du) $ 

но вместо этого я получаю

})\[\033[00m\]\$ : command not found

любая помощь очень ценится.

Ответы [ 2 ]

1 голос
/ 31 января 2020

Попробуйте что-то вроде

export PS1='[$(ls $PWD ; du -sh /home/me)]'

Однако необходимо сказать, что это приведет к перегрузке вашей системы / файловой системы. Просто имейте это в виду.

0 голосов
/ 01 февраля 2020

мое решение:

Я создал пользовательскую функцию с помощью команды du, а затем просто добавил ее в переменную PS1, например:

function printDu {
    du -s echo $PWD 2>/dev/null | awk '{printf $1}'
}
PS1 = '\[\033[01;32m\]\w\`printDu`\[\033[00m\]\$
...