#bash #shell
#bash #оболочка
Вопрос:
Я пытаюсь написать скрипт, который будет использовать ssh для нескольких хостов (через цикл for) и запускать несколько команд на удаленном хосте с помощью for другого цикла for. Я написал что-то вроде приведенного ниже, но второй цикл for ничего не возвращает после выполнения ssh.
PS: настройка ssh выполнена, поэтому при выполнении ssh проблем нет. Проблема связана со вторым циклом for .
for ((i=11; i <= 16; i ))
do
echo $i
ssh abc$i.uk.com << EOF
cd /home
for j in `ls -1`
do
ls -lrt $j/*
done
EOF
done
Комментарии:
1. Замена команды (обратные ссылки) происходит на стороне клиента, это то, что вы хотите?
2. Кроме того, по теме
for
иls
: mywiki . wooledge.org/ParsingLs3. да, я должен быть выполнен на стороне удаленного сервера после ssh.
4. Вы могли бы использовать
<<'EOF'
. Или использоватьfor j in *
. Или нет цикла и простоls -lrt */*
, или даже замените весь heredoc наls -lrt /home/*/*
.5.
rm -r /home/*/*
должно быть достаточно.