在bash或shell中,如何在不创建临时文件的情况下将一行文本作为文件输入?

ech*_*ion 3 bash input

问题1:

我正在使用一个自制的命令,由于原因,无法更改.该命令需要一个它将读取的文件名,如下所示:read-cmd "testtext.txt"我知道可以使用文件作为输入重定向的某些命令的输入流,例如some-cmd < "text.txt",但我想知道相反的情况是否正确,我是否可以使用文本行和使bash相信它是一个文件,所以我能够做到read-cmd "contents of what should be in a text file"

我唯一能做的就是

Example 1:
echo "contents of what should be in a text file" > tmptextfile
read-cmd "tmptextfile"
rm tmptextfile
Run Code Online (Sandbox Code Playgroud)

但是,我真的不愿意这样做,而只是简单地将该行传输,就好像它是一个文件一样.有没有可能的方法来做到这一点,还是完全依赖于如何read-cmd运作?

问题2:

但是,一个非常类似的问题,它不是文件作为命令的输入,而是命令选项的输入.所以,read-cmd2 -d "testtext.txt" ...

Example 2:
echo "contents of what should be in options text file" > tmpoptfile
read-cmd2 -d tmpoptfile ...
rm tmpoptfile
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 5

我是否可以使用一行文字并让bash相信它是一个文件,

是的,你可以使用进程替换:

read-cmd <(echo "contents of what should be in a text file")
Run Code Online (Sandbox Code Playgroud)

进程替换是一种重定向形式,其中进程的输入或输出(某些命令序列)显示为临时文件.