С помощью этого кода я получаю эту ошибку, и моя функция не доступна:BASH - В то время как ошибка петли
ERREUR де syntaxe Пре-дю-Symbole inattendu «<» `сделано < < (эхо -e «$ TARGET_PORTS ") 'предупреждение: синтаксические ошибки в. или Eval заставит будущие версии оболочки для прерывания, как Posix требует
function my_func{
while read Port
do
CHECK_HG=`raidcom get host_grp -port $Port -IH${CCI_INST} |grep -iw ${HOST}`
if [ ! -z "$CHECK_HG" ]; then
export HMO=`raidcom get host_grp -port $Port -IH${CCI_INST} | grep -i ${HOST} | awk -F " " '{print \$5}'`
if [ $HMO == "LINUX/IRIX" ]; then
HMO=`echo $HMO | awk -F "/" '{print \$1}'`
fi
#comment
NBPort=`expr $NBPort + 1`
#comment
PORT_HG=$PORT_HG"$Port;\n"
fi
done < <(echo -e "$TARGET_PORTS")
}
Так что, когда я изменить мой цикл, я не получаю ошибки, я, но теряет все данные в переменном, чтобы восстановить в основном сценарии ,
function my_func{
echo -e "$TARGET_PORTS" | while read Port
do
CHECK_HG=`raidcom get host_grp -port $Port -IH${CCI_INST} |grep -iw ${HOST}`
if [ ! -z "$CHECK_HG" ]; then
export HMO=`raidcom get host_grp -port $Port -IH${CCI_INST} | grep -i ${HOST} | awk -F " " '{print \$5}'`
if [ $HMO == "LINUX/IRIX" ]; then
HMO=`echo $HMO | awk -F "/" '{print \$1}'`
fi
#comment
NBPort=`expr $NBPort + 1`
#Comment
PORT_HG=$PORT_HG"$Port;\n"
fi
done
}
Есть идеи? Большое спасибо.
Может попробовать удалить один «<» в конец цикла while. –
Нет ... такая же ошибка с: done <(echo -e "$ TARGET_PORTS") или сделано <(echo -e "$ TARGET_PORTS") – Indi59
Выполняется сценарий с оболочкой, отличной от 'bash', и что shell не понимает замещение процесса. – chepner