Я пытаюсь выполнить этот код на нескольких удаленных ящиках Solaris 10 поверх ssh. Я читаю некоторую информацию о соединении с локальным ipa.txt файлом:Execute FOR loop over ssh
#!/bin/ksh
while read hostn sid; do
v_sid=$sid;
ssh [email protected]$hostn << EOF
for D in $(df -k |grep ora | grep -i $v_sid | awk '{print $6}')
do
printf "$(df -h $D |tail -1|awk '{print "FS:", $6, " usage:", $5"%"}')\n"
done
EOF
done < ipa.txt
Если я только выполнить команду FOR цикла непосредственно в терминал, она работает. Но если я поместил весь скрипт в файл .ksh, и я его выполнил, я получаю следующую ошибку в строке 3 (строка, где находится do, следующая строка после оператора FOR).
ksh[2]: syntax error at line 3 : `newline or ;' unexpected
Существует проблема с FOR цикла, но я не понимаю, где она находится.
Любое предложение?
Спасибо
Вам не хватает закрывающего ')' в подстановке команд, выходные данные которых вы итерируете. – chepner
@chepner извините, это была опечатка, но проблема не устранена – Shaunyl