在EOF中的bash脚本无法将参数传递给函数。
- 论坛
- 在EOF中的bash脚本无法将参数传递给函数。
26 浏览
匿名的
0 Comments
引用<< 'EOF'
来防止在函数定义之前展开函数中的$
。
sudo -i -u $USER bash << 'EOF' func(){ echo $1 } func 'Test message for channel' EOF
请参阅Bash手册中的Here Documents。此行为适用于所有Bourne shell衍生物——Bash、POSIX shell、ksh
等。
问题原因:由于在<< 'EOF'
中使用了单引号,导致函数中的参数无法展开。
解决方法:去掉<< 'EOF'
中的单引号即可。这样就可以在函数中正常展开参数了。