lftp
имеет ~ / .lftprc
Вы можете разместить там псевдонимы, например
alias con-cme connect ftp://ftp.cmegroup.com/
И эта командная строка работает:
lftp -e "con-cme"
В противном случае вы могли бы написать несколько (красиво названных) сценариев, которые что ты хочешь. Либо простые сценарии оболочки ( #! / Bin / sh
), либо даже настоящие «сценарии lftp» ( #! / Usr / bin / lftp -f
).
Вот пример такого lftp-скрипта (вы можете представить его как исполняемый файл конфигурации;)
#!/usr/bin/lftp -f
set ftp:use-mdtm off
# ftp.cmegroup.com: 216.178.212.20, 208.39.78.6, ...
open 216.178.212.20
cat stc >/dev/null || exit 111
mirror --only-newer --delete --use-cache --verbose=3 \
-X '20[0-9][0-9]/' \
-X '.git' \
-X '.metadata' \
/ /home/rudi/cme/ftp.cme.com
Интересно. Похоже, это специфичное для Bash поведение.
Я пробовал 3 других POSIX-совместимых оболочки (zsh, dash, busybox), и во всех из них echo "$ (trap)"
дал тот же результат, что и (trap)
: подоболочка запускается, и подоболочка не показывает ловушку EXIT
.
(Обратите внимание, что trap -p
специфичен для Bash, и без дополнительных параметров он делает то же самое, что и trap
без параметров.)
Поведение Bash потенциально полезно : это означает, что вы можете написать a = "$ (trap)"
для захвата настроек прерывания родительской оболочки, которые, скорее всего, будут интересны.
Однако, если вы установите или очистите ловушку в подоболочке, то она будет перечислить ловушки подоболочки вместо родительской:
$ trap 'echo bye' EXIT
$ echo "$(trap TERM; trap)" # explicitly clear TERM, but leave EXIT alone
trap -- '' SIGTSTP
trap -- '' SIGTTIN
trap -- '' SIGTTOU
Таким образом, они также охватили редкий случай, когда вы интересуется ловушками подоболочки.
В общем, я заметил, что разработчики Bash, похоже, приложили дополнительные усилия, чтобы обработка подоболочки работала нормально. Кроме того, с помощью Bash намного проще управлять фоновыми подпроцессами, чем с помощью более минимальных оболочек POSIX.