我正在编写一个配置生成器脚本。
当我将功能代码 ( setup_displays
) 直接粘贴到终端中时,一切正常。但是当我打电话时sh generator.sh
我收到此错误:
functions.sh: line 3: ./helpers.sh: Permission denied
functions.sh: line 75: syntax error near unexpected token `<'
functions.sh: line 75: ` done< <(echo $display_result)'
生成器.sh
#!/bin/bash
set -x
source functions.sh
setup_display
函数.sh
#!/bin/sh
source ./helpers.sh
setup_display() {
display_result=2 87 800 600 60 1 0 0 0
# setting params
while read -r hdmi_group hdmi_mode hdmi_cvt; do
echo "hdmi_mode" "$hdmi_mode"
echo "hdmi_group" "$hdmi_group"
echo "hdmi_cvt" "$hdmi_cvt"
done< <(echo $display_result) # line 75
}
这是正确的输出
hdmi_mode 87
hdmi_group 2
hdmi_cvt 800 600 60 1 0 0 0
我做错了什么?
答案1
#!/bin/sh
不等于#!/bin/bash
.
无论如何:这是对 echo 的无用使用。使用
done <<<$display_result
反而。