PS1 变量中 linux 命令的 BASH 打印结果



我正在尝试更改我的 ps1 命令提示符以打印出 pwd 的内容以及 du 命令的结果。 我尝试将其添加到我的 .bashrc 文件中的 PS1 变量中

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

运行源代码 ~/.baashrc 后,我期待输出如下内容:

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

但相反,我收到了

})[33[00m]$ : command not found

任何帮助将不胜感激。

尝试类似

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

但是,必须说这会给您的系统/文件系统带来开销。请记住这一点。

我的解决方案:

我使用 du 命令创建了一个自定义函数,然后将其添加到 PS1 变量中,如下所示:

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

最新更新