Linux
Shell:是否可以將字元串作為文件提供給命令?
假設我們有一個命令,
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 <(echo aaa) /dev/fd/63 $ echo <(echo test) <(echo second test) /dev/fd/63 /dev/fd/62
有關更多資訊,請參閱中的“流程替代”部分
man bash