LINUX.ORG.RU

ssh выполнить команду удаленном сервере

 


0

1

Пишу скрипт выдаёт ошибку,тоесть не могу подставить переменные $STARTNUM,$ENDNUM,$NAME_${i}

echo -e "--------------------------------------------"
read -p "=> Введите начальное число:" STARTNUM
read -p "=> Введите конечное  число:" ENDNUM
read -p "=> Введите название файла:" NAME_${i}
echo ""

read -p "> Пожалуйста,введите IP adress:" IPVDS
ssh root@$IPVDS -t 'cd /root/Desktop/file && for i in `seq $STARTNUM $ENDNUM`; do cp my.txt $NAME_${i}.txt; done'

Выдаёт ошибку,если подставить всё как есть без этих переменных то тогда нормально работает,как можно решить плиз.. .

Ответ на: комментарий от iNdexoiD

read -p «=> Введите название файла:» NAME_${i}

_{i} ???

anonymous
()
Ответ на: комментарий от iNdexoiD

Вот так работает

ssh root@$IPVDS -t 'cd /root/Desktop/file && for i in `seq 1 500`; do cp my.txt myfile_num_${i}.txt; done'

iNdexoiD
() автор топика

$NAME_${i}

надо ${NAME}_${i} , т.к. _ не является разделителем, получается переменная с именем NAME_

anonymous
()

Раз исп. двойные кавычки, экранируй

\`seq $STARTNUM $ENDNUM\` чтобы исполнялось на удал. сервере, а не на клиенте

anonymous
()
Ответ на: комментарий от iNdexoiD

$ у переменных которые не должны раскрываться на клиенте, а только на сервере тоже экранируй \$

надо было так сделать

read -p "=> Введите название файла:" NAME

ssh root@$IPVDS -t 'cd /root/Desktop/file && for i in `seq '$STARTNUM $ENDNUM'`; do cp my.txt '$NAME'_${i}.txt; done'

most-fucktum
()
Ответ на: комментарий от most-fucktum

Спс друзья выполнилось как нужно.

echo -e "--------------------------------------------"
read -p "=> Введите начальное число:" STARTNUM
read -p "=> Введите конечное  число:" ENDNUM
read -p "=> Введите название файла:" NAME
echo ""

read -p "> Пожалуйста,введите IP adress:" IPVDS
ssh root@$IPVDS -t 'cd /usr/share/set/attach && for i in `seq '$STARTNUM $ENDNUM'`; do cp my.zip '$NAME'_${i}_Private.zip; done'
iNdexoiD
() автор топика
Ответ на: комментарий от iNdexoiD
""

предотвращают разбиение на слова, экранируют пробелы.

''

экранируют все спецсимволы переданные в данных кавычках.

vxzvxz ★★★
()
Последнее исправление: vxzvxz (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.