用临时文件替换bash进程

Ela*_*ich 10 shell bash tmp process-substitution

一些程序需要它们的文件是可查找的,例如objdump确实如此。

$ objdump -D -b binary -m i8086 <(echo 0xea 0x5b 0xe0 0x00 0xf0|xxd -r -p)
objdump: Warning: '/proc/self/fd/11' is not an ordinary file
Run Code Online (Sandbox Code Playgroud)

让进程替换使用临时文件会很方便。

我可以在手册页中看到 bash 可以使用进程替换回退到临时文件,但是我可以明确要求他使用临时文件吗?

喜欢zsh=()

$ objdump -D -b binary -m i8086 =(echo 0xea 0x5b 0xe0 0x00 0xf0|xxd -r -p)

/tmp/zsh1u1Nrw:     file format binary


Disassembly of section .data:

00000000 <.data>:
   0:   ea 5b e0 00 f0          ljmp   $0xf000,$0xe05b
Run Code Online (Sandbox Code Playgroud)

小智 3

基于meuh的评论;显然 bash 这里的字符串可以被滥用为临时文件,试试这个:

( echo 0xea 0x5b 0xe0 0x00 0xf0 | 
  xxd -r -p >/dev/fd/9; objdump -D -b binary -m i8086 /dev/fd/9) 9<<<''
Run Code Online (Sandbox Code Playgroud)