我想像这样运行一个 bash shell 脚本:
读取文件时;
做
echo $file;
完成<< eof
$(ls)
eof;`
它在示例 .sh 文件中运行良好。但是当把它放在一个像这样的函数中时:
function {
while read file;
do
echo $file;
done << eof
$(ls)
eof;
}
它对我不起作用。
我现在不知道如何解决。
尝试取消缩进你的 eof:
function {
while read file;
do
echo $file;
done << eof
$(ls)
eof;
}
不要缩进你的heredoc,你的eof
标记不应该有一个尾随分号
在 bash 中:<<-TERMINATION
如果您希望它忽略TERMINATION
字符串之前的空格,请使用(但如果您更喜欢兼容性,请使用<<TERMINATION
andTERMINATION
单独一行,并从第一列开始。如果尾随;
也是问题,请将其放在下一行(或者: ;
如果你愿意,可以放一个)
并为您的功能命名:(function myfunction { ... }
或者,更兼容myfunction () { ... }
:)