Используя Ожидать сценарий для отправки трудно кодированного незашифрованного пароля обычно Очень Плохая Идея. При необходимости в scriptable, соединениях SSH без пароля намного лучше использовать аутентификацию пары ключей:
ssh-keygen # and then follow the prompts; don't set a passphrase
ssh-copy-id username@remote.host.example.com
После выполнения так, Вы можете ssh user@remote.host.example.com
не будучи должен ввести Ваш пароль.
Можно все еще израсходовать набор мультиплексирования соединения управления с Control
директивы в ~/.ssh/config
, и закройте основное соединение с ssh -O exit user@remote.host.example.com
.
Необходимо также использовать ssh
утилита простого выполнения управляет удаленно - после того как Вам настраивали аутентификацию пары ключей, Вы можете иметь:
ssh username@remote.host.exameple.com /etc/init.d/dnsmasq restart
в Вашем сценарии и быть все установленным пойти.
Самый простой способ - использовать числовой диапазон ZSH :
mv PRC<257-1516> /else/where/
Диапазон Оператор соответствует номерам с ведущими нулями или без него, поэтому PRC257
, PRC0257
, PRC00257
и т. Д. Все включены. Вы можете оставить конец диапазона пустым, например, PRC <257 ->
Для перемещения всех файлов из 257 внутрь. Неважно, сколько файлов в диапазоне существует. Среди обычных раковин эта функция существует только в ZSH.
Bash, KSH93 и ZSH поддерживает диапазоны в скобках. Это не шаблон, а простое расширение текста, например, A {9..11}
расширяется до A9 A10 A11
независимо от того, существуют ли какие-либо из этих файлов.
mv PRC{0257..1516} /else/where
Вы также можете объединить несколько шаров; Это имеет преимущество работы в любой оболочке, но это громоздко, когда ваши границы не являются круглыми номерами.
mv PRC025[7-9] PRC02[6-9][0-9] PRC0[3-9][0-9][0-9] PRC1[0-4][0-9][0-9] PRC150[0-9] PRC151[0-6] /else/where
В качестве альтернативы, вы можете быть более включены во Всем и фильтре.
for x in PRC[0-9]*; do
n=${x#PRC}
n=${x%"${x##*[!0]*}"} # strip leading zeroes (beware that numbers with a leading 0 are parsed in octal)
if [ "$x" -ge 257 ] && [ "$x" -le 1516 ]; then mv "#x" /else/where; fi
done