问题
find ./ -print0 | grep -FzZ '.git/config'
注意1:-print0 是为了将输出的换行符替换成Null空字符(\x00)进行的, 对应有 xargs -0 进行逆向处理将空字符串专程换行符
注意2:'.git/config' 里面是正则表达式,如果要匹配原始字符串'.git/config' 需添加转义字符,具体为'\.git\/config'
问题拆解
命令本身问题:命令中携带\x00
subprocess在同一个方法中不能多次使用
依赖条件
无
源码链接
无
错误信息
in check_output **kwargs).stdout subprocess.py", line 696, in run
File "/usr/local/python3.5/lib/python3.5/subprocess.py", line 1479, in _execute_child
restore_signals, start_new_session, preexec_fn)
错误分析和认识
因为存在\x00导致subprocee创建子进程执行命令时,无法正常
尝试的解决思路
解决思路1 : 使用不带\x00的命令,如ls -al,测试正常,证明:同一个方法中可以多次使用subprocess来执行shell命令,正常输出相关信息
网友评论