У меня есть этот сценарий оболочки
#!/bin/sh
PATHS=( a b c d )
for PATH in ${PATHS[@]}
do
rsync -avziP /home/user/$PATH $SERVER:$server_folder -b --backup-dir=$backup_folder/backup_$date --delete --exclude=.* --log-file=$HOME/rsync.log
done
И я всегда получаю эту ошибку:
rsync: команда не найдена
Что сводит меня с ума, так это то, что если я удалю цикл for и просто запущу команду rsync, скрипт будет работать отлично.
${PATHS[@]}
), которые доступны только для bash. Вам лучше указать что-то вроде#!/bin/bash
в вашем shebang, иначе он, вероятно, рано или поздно взорвется - большинство дистрибутивов Linux, как правило, удаляют bash как реализацию sh по умолчанию, BSD / Mac никогда не имели bash как sh. - person GreyCat   schedule 02.11.2012path
) для всего, что не является ни переменной среды, ни встроенной; это позволяет избежать ошибочного использования зарезервированных имен (например,PATH
). - person Charles Duffy   schedule 07.03.2015