#!/bin/sh
não é equivalente a #!/bin/bash
.
De qualquer forma: isso é inútil uso de eco. Use
done <<<$display_result
em vez disso.
Estou escrevendo um script de gerador de configuração.
Quando colo o código de função ( setup_displays
) diretamente no terminal, tudo funciona. Mas quando eu chamo sh generator.sh
eu recebo este erro:
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)'
generator.sh
#!/bin/bash
set -x
source functions.sh
setup_display
functions.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
}
Esta é a saída correta
hdmi_mode 87
hdmi_group 2
hdmi_cvt 800 600 60 1 0 0 0
O que estou fazendo errado?
Tags shell-script