Bash 列出正在运行的进程并将其发送到文件

Bash 列出正在运行的进程并将其发送到文件,bash,shell,Bash,Shell,我的函数应该列出所有正在运行的进程,并将它们存储到process.id,如果process.id存在,它应该将其重命名为当前日期,并在末尾添加.id,然后将其移动到/logs目录。我想我有mv和重命名部分工作,但它似乎没有保存到文件的所有进程。那部分有语法错误吗 function processsaver() { if [ -r "process.id" ]; then mv "process.id" logs/$(date +%d-%m-%y).id ps -e > /process.i

我的函数应该列出所有正在运行的进程,并将它们存储到process.id,如果process.id存在,它应该将其重命名为当前日期,并在末尾添加.id,然后将其移动到/logs目录。我想我有mv和重命名部分工作,但它似乎没有保存到文件的所有进程。那部分有语法错误吗

function processsaver()
{
if [ -r "process.id" ]; then
mv "process.id" logs/$(date +%d-%m-%y).id
ps -e > /process.id
fi
}

process.id
/process.id
是不同的路径。您可能希望在这两个位置都使用
process.id
/process.id
,因为此类信息实际上不应该位于文件系统根目录中。

太好了。您的问题是什么?理想情况下,如果您不是在root下运行,那么在访问root
ps-e>/process.id
下的文件时,应该会出现权限拒绝错误。你没注意到吗