是否有任何bash技巧允许在命令行中为通过输入流获取输入的程序提供一些参数?像这样:
program < 'a=1;b=a*2;'
但是&lt;需要一个文件输入流。
答案 0 :(得分:5)
对于非常短的here-documents,还有here-strings:
program <<< "a=1;b=a*2"
答案 1 :(得分:2)
答案 2 :(得分:1)
echo
效果很好。另一个答案是Here-documents [1]
program <<EOF
a=1;b=a*2;
EOF
当我在一行上有一个非常短的东西时使用echo,当我有需要换行符的东西时使用heredoc。
答案 3 :(得分:0)
shopt -s expand_aliases
alias 'xscript:'='<<:ends'
xscript: bc | anotherprog | yetanotherprog ...
a=1;b=a*2;
:ends
我花了一年的时间来解决这个问题。费尔拉斯的高级bash脚本。给予应有的尊重:)
我称之为'diddy'xscript,因为你可以在here文档中扩展bash变量和替换。
alias 'script:'='<<":ends"'
以上版本不会扩展替换。
xscript: cat
The files in our path are: `ls -A`
:ends
script: cat
The files in our path are: `ls -A`
:ends
我还没完呢!
source <(xscript: cat
echo \$BASH "hello world, I'mma script genius!"
echo You can thank me now $USER
:ends
)