当前位置: 技术问答>linux和unix
shell重定向
来源: 互联网 发布时间:2017-01-17
本文导语: 大家好,我写了一个shell,实现搜索命令/usr/sbin/httpd的进程号,输入到以当前进程为名称的文件,但是执行很多次都发现文件是创建了,但是就没有内容。例如我当前的进程号是21908,搜索到/usr/sbin/httpd的进程号式2...
大家好,我写了一个shell,实现搜索命令/usr/sbin/httpd的进程号,输入到以当前进程为名称的文件,但是执行很多次都发现文件是创建了,但是就没有内容。例如我当前的进程号是21908,搜索到/usr/sbin/httpd的进程号式21921,则在21908.txt的文件中应该存在21921。发现txt文件是存在,但是用vi 和 cat命令就是发现文件的内容为空。请问是什么问题呢?
具体文件如下:
#!/bin/bash
currentID=$$
#echo $currentID
ps -aux | grep "/usr/sbin/httpd" | awk '{print $2}'>>${currentID}.txt
谢谢大家!
具体文件如下:
#!/bin/bash
currentID=$$
#echo $currentID
ps -aux | grep "/usr/sbin/httpd" | awk '{print $2}'>>${currentID}.txt
谢谢大家!
|
ps aux 不是 ps -aux
|
LZ啊,你不会自己多试试啊,咋还衣来伸手饭来张口啊。
你先ps aux,有的话再ps axu | grep ,还是有的话再 ps aux | grep | awk ,一步一步的在命令行下尝试啊。
我考,真服了。
你先ps aux,有的话再ps axu | grep ,还是有的话再 ps aux | grep | awk ,一步一步的在命令行下尝试啊。
我考,真服了。
|
我试了一下,能写进去,这是什么情况。
|
ps的参数是不需要-的,这个2楼已经指出了。文件中没有内容,估计还是系统中已经没有httpd在运行的缘故。(或者用户权限不足以查到这个进程,或者字符串有误导致匹配失败,即grep没有输出)
|
#!/bin/bash
currentID=$$
ps aux | grep "/usr/sbin/httpd" >>${currentID}.txt 2>&1
ps aux | grep "/usr/sbin/httpd" | awk '{print $2}' >>${currentID}.txt 2>&1
这样可以吗?
如果你是把脚本放在crontab里面执行的,给每个命令加上完整路径吧。
|
>>定向标准输出,2>&1把标准错误定向到标准输出呗,你可以了解一下dup2函数.
难道命令有错?
|
怎么我这可以顺利进行啊。
ps aux | grep "/usr/sbin/httpd" | awk '{print $2}' >>${currentID}.txt 2>&1
这个不是错误输出重定向吗?跟这个没什么关系吧。
ps aux | grep "/usr/sbin/httpd" | awk '{print $2}' >>${currentID}.txt 2>&1
这个不是错误输出重定向吗?跟这个没什么关系吧。
|
这里的&1是1号句柄,也就是前面的日志文件。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。