在bash中使用变量和多个pip?
我正试图完成一个维护脚本,我正在赶上以下一行:在bash中使用变量和多个pip?,bash,grep,pipeline,Bash,Grep,Pipeline,我正试图完成一个维护脚本,我正在赶上以下一行: PUID=$(ps aux | grep $PID | grep -v $USER| cut -d' ' -f1) 我试图从ps aux命令中提取一个特定的进程ID($PID)(同时忽略用户刚刚用相同的PID创建的进程),然后除去进程所有者的用户名以外的所有进程 目前,命令在命令行中运行时运行良好,但是我在将其分配给变量$PUID时遇到问题,甚至只是将其作为命令执行。有什么建议吗 编辑: 我正在努力解决这个问题,我相信传递变量$PID时仍然存在问
PUID=$(ps aux | grep $PID | grep -v $USER| cut -d' ' -f1)
我试图从ps aux
命令中提取一个特定的进程ID($PID
)(同时忽略用户刚刚用相同的PID创建的进程),然后除去进程所有者的用户名以外的所有进程
目前,命令在命令行中运行时运行良好,但是我在将其分配给变量$PUID
时遇到问题,甚至只是将其作为命令执行。有什么建议吗
编辑:
我正在努力解决这个问题,我相信传递变量$PID时仍然存在问题,现在它正在使用这行代码从一个文件(它正确地执行)中提取
PID=$(cat/nfs/pdx/home/komcconx/PID/current/PID)
如果我添加一个echo$PID,它将返回正确的PID
当我运行命令PUID=$(ps-p$PID-o uname=)时,我会得到一个错误,说“error:processid list syntax error”。如果我运行命令时$PID的位置是“1”,它会正确地返回“root”
有什么想法吗?”
最终编辑:
发现问题是PID是从DOS文件中提取的,我试图用DOS换行符运行命令,这个问题已经解决了 如果只需要进程的用户名,可以使用-o选项:
PUID=$(ps -p $PID -o uname=);
echo $PUID
哦,woops,当我试图集中精力让至少第一个grep工作、编辑时,我就有了它;请查阅您的本地手册页以了解您机器上的正确语法。不要使用旧的和过时的back tics,请使用以下括号:
PUID=$(ps-p$PID-o uname=)
(也不需要;
结尾处)嘿,伙计们,我正在努力解决这个问题,我相信传递变量$PID时仍然存在问题,现在它使用这行代码从一个文件(它正确地执行)中提取嘿,伙计们,我正在尝试解决这个问题,我相信传递变量$PID时仍然存在问题,现在它使用这行代码从一个文件(它正确地执行)中提取PID=$(cat/nfs/pdx/home/komconx/PID/current/PID)如果我添加一个echo$PID,它将返回正确的PID。当我运行命令PUID=$(ps-p$PID-o uname=)时,我会收到一个错误,上面写着“error:Process ID list syntax error”。如果我运行命令时用“1”代替$PID,它会正确地返回“root”任何想法?@dustyblade在post中打印文件中的内容:nfs/pdx/home/komconx/PID/current/PID。