是否有任何 bash 技巧允许在命令行中将一些参数提供给通过输入流获取其输入的程序?像这样的东西:
program < 'a=1;b=a*2;'
但是 < 需要一个文件输入流。
对于非常短的 here-documents,还有 here-strings:
program <<< "a=1;b=a*2"
echo
效果很好。另一个答案是 Here-documents [1]
program <<EOF
a=1;b=a*2;
EOF
当我在一行上有一件非常短的东西时,我使用 echo,当我有需要换行符的东西时,我使用 heredocs。
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
)