#bash #ftp #stdin #aix
#bash #ftp #стандартный #aix
Вопрос:
У меня много проблем со сценарием, который я пишу, который будет загружать файл на удаленный ftp-сервер.
У нас есть программное обеспечение, которое генерирует файлы в этом формате:
filename-`date "%Y%m%d"`
Моя проблема в том, что я не могу заставить ftp расширить это выражение даты, я хотел бы иметь возможность сделать простой:
put filename1-`date "%Y%m%d"`
из .netrc или из stdin, например:
ftp -n ftp.server.com < ftpcommands.txt
Я пробовал это, но ftp принимает выражение даты буквально, и я получаю
«filename1-`дата….файл не найден»
Кто-нибудь знает способ, которым я мог бы решить эту проблему?
Кроме того, кто-нибудь знает, можете ли вы указать подкоманды ftp в командной строке? У меня возникли проблемы с поиском примеров на нем. Если это возможно, то bash расширит выражение даты и передаст его на ftp, но я не нашел подходящих вариантов.
Я использую оболочку bash
Спасибо!
Ответ №1:
Программа ftp не выполняет расширения оболочки. Одна вещь, которую вы могли бы сделать, это:
ftp -n ftp.server.com << EOF
# insert other commands here
put filename1-$(date "%Y%m%d")
EOF
Здесь-документ будет расширен Bash, чтобы делать то, что вы хотите.