我的程序生成两个字符串,我希望它们通过外部diff工具进行比较。 diff工具只接受文件/目录作为参数。这是diff file1 file2
完美的作品,但diff "hello" "world"
不起作用。有没有办法将我的字符串直接传递到diff
而不创建任何临时文件?谢谢。php将字符串传递给外部diff命令
回答
在外壳上,可以使用临时管道。
diff <(echo "string 1") <(echo "string 2")
使用反引号运算符或任何其他方法在php中执行命令。有关执行命令的详细信息,请参阅手册:http://www.php.net/manual/en/ref.exec.php
确保你正确转义字符串。
编辑:此功能称为临时管道。因此,shell将其转换为文件描述符。
[email protected]:~$ echo <(echo "string")
/dev/fd/63
[email protected]:~$ cat <(echo "string")
string
作品!你能否详细说明<(echo“string 1”)如何模拟shell中的文件? – Shawn 2012-02-08 14:14:09
AFAIK它只是将两个管道连接到diff命令,就像两个STDIN一样。但我不知道为什么以及它是如何工作的。这就是为什么我问了下面的问题:http://stackoverflow.com/questions/9195117/two-pipes-to-one-command – iblue 2012-02-08 14:21:35
也许这解释了它?没问题。http://www.linuxjournal.com/article/2156?page=0,1 – Shawn 2012-02-08 14:31:33
- 1. 将PowerShell $ _传递给外部命令
- 2. 将命令行字符串lpszCmdLine传递给WM_CREATE c
- 3. 如何将Python字符串传递给Linux命令行?
- 4. 如何将字符串传递给bash命令作为参数
- 5. 将字符串中的命令传递给CMD.exe出错
- 6. 从命令行将字符串传递给matlab Linux
- 7. 将字符串传递给$
- 8. 如何将文本字符串作为PHP Exec命令传递
- 9. 从外部编辑器将命令传递给.NET GUI
- 10. 将C#中的命令行参数传递给外部exe
- 11. 传递字符串^到sql命令
- 12. 传递给SED时解析字符串错误命令丢失
- 13. 将字符串从IHttpHandler传递给Javascript,然后传递给Silverlight
- 14. PHP传递字符串内部空间
- 15. 将PHP字符串传递为SQL命令并保留换行符
- 16. 如何将重定向字符(“<" and ">”)传递给命令?
- 17. 将元字符作为参数从命令行传递给Python
- 18. 将值传递给查询字符串
- 19. 将字符串传递给jquery函数
- 20. 将查询字符串传递给rDirectory
- 21. 将REGEX字符串传递给re.search
- 22. 将字符串传递给facet_grid:ggplot2
- 23. 将字符串传递给Java Eclipse
- 24. 将字符串传递给函数
- 25. 如何将字符串传递给epp_dodger?
- 26. 将字符串变量传递给tcpClient.Connect
- 27. 将字符串传递给make文件
- 28. 将字符串传递给Asyntask
- 29. 将字符串列表传递给map_async()
- 30. 将字符串传递给dll
什么是 “外部比较工具”? – Richard 2012-02-08 13:48:11
您正在使用什么prograsm进行比较? (请详细说明) – bizzr3 2012-02-08 13:48:52
linux diff工具。只需$> diff – Shawn 2012-02-08 13:50:10