Как использовать переменную в сценарии оболочки FTP? - PullRequest
0 голосов
/ 22 февраля 2011

Используя удобный скрипт, который я нашел для FTP-доступа, я изменил его для собственного использования, и он работает, но слишком хорошо или слишком буквально.

#!/bin/sh

HOST='10.0.1.110'
USER='myName'
PASSWD='myPass'
FILE='*.sql' # WILDCARD NOT WORKING - Takes literal string of '*.sql'

# Stripped unrelated code

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
prompt
binary
cd Desktop/SweepToDiskBK
mput /home/myAcct/SQLbackups/"$FILE" "$FILE"
quit
END_SCRIPT
exit

То есть файл (s) он получает 'put', ему присваивается имя *.sql и он заменяет любые предыдущие его версии вместо file1.sql, file2.sql и т. д. В исходном сценарии они выполняли put вместоmput и с одним именем файла text.txt.Я также попытался изменить одинарные кавычки после FILE, чтобы двойные кавычки, и получил тот же результат.Может ли кто-нибудь дать мне понять, как использовать переменные для FTP-входа в CLI?

Заранее спасибо, LO

Ответы [ 2 ]

0 голосов
/ 22 февраля 2011

Но я думаю, что вы можете просто сделать mput /home/myAcct/SQLbackups/$FILE до mput *.sql? Или, если вам нужно поместить несколько файлов с помощью команды put, вам нужно сделать это один за другим с каким-то циклом.

Чтобы проверить, что делает скрипт, измените ftp -n $HOST на cat. Попробуйте эти самые команды в обычном сеансе ftp. Они работают?

0 голосов
/ 22 февраля 2011

Я бы попробовал это:

FILE=*.sql

без кавычек, включающих расширение по шаблону и:

mput /home/myAcct/SQLbackups/"$FILE"

только с одним $ FILE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...