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