Linux

Shell:是否可以將字元串作為文件提供給命令?

  • December 16, 2018

假設我們有一個命令,

eval-some-language —-path=<filename>

我們想做這樣的事情:

eval-some-language —-path=“say hello world!
exit 3”

我認為以下解決方案可能適用於一個文件,如果標準輸入不用於其他:

eval-some-language —-path=“/dev/stdin” <<<“say hello ...”

這適用於所有命令嗎?它的便攜性如何?(蘋果系統?)

還有其他方法可以做到這一點嗎?

更新:如果文件需要可執行,我的解決方案、接受的答案和 zsh 的 =() 都不起作用。:(

試試這個:

eval-some-language --path=<(echo "hello world")

<() 將生成一個文件描述符,綁定到命令的輸出並將其作為 /dev/fd/xxx 傳遞。例如:

$ echo &lt;(echo aaa)
/dev/fd/63

$ echo &lt;(echo test) &lt;(echo second test)
/dev/fd/63 /dev/fd/62

有關更多資訊,請參閱中的“流程替代”部分man bash

引用自:https://unix.stackexchange.com/questions/489362