У меня есть этот скрипт, который я использую на Centos в течение многих лет. Я сейчас вызываю тот же скрипт на Raspberry Pi и получаю эту ошибку:
/media/Backups/backup_all.sh: 2: /media/Backups/backup_all.sh: source: not found
/media/Backups/backup_all.sh: 7: /media/Backups/backup_all.sh: function: not found
Это скрипт, который находится в файле с именем backup_all.sh. Я звоню из командной строки и cron, используя sh backup_all.sh.
#!/bin/sh
function backup
{
sh "/media/Backups/backup.sh" $1 $2 filter-list.txt
}
backup myserverhostname.com 22
Я также попытался поместить исходный файл backup.sh или «source /media/Backups/backup.sh» вверху, и это не сработало.
Странно то, что он действительно вызывает скрипт backup.sh, потому что я получаю дальнейшие ошибки от этого.
Если я вызываю исходный скрипт прямо из командной строки (например, sh "/media/Backups/backup.sh" myserverhostname.com 22 filter-list.txt), он работает нормально, поэтому я не думаю, что там есть ошибки.
Если я не использую функцию и просто вызываю sh "/media/Backups/backup.sh" myserver 22 filter-list.txt в файле backup_all.sh, то это также работает нормально. Так что, кажется, только при использовании в функции.
Для информации, я включаю скрипт в другой скрипт, потому что я выполняю эту функцию на многих серверах, поэтому я вызываю функцию резервного копирования в этом файле много раз, это было проще, чем вызывать его специально для каждого сервера. Но чтобы заставить его работать, я удаляю функцию и вызываю каждую строку отдельно, но было бы хорошо узнать, почему я не могу использовать ту же функцию, что и в Centos.