Источник не найден на Vagrant up


У меня есть приведенный ниже код в моем Vagrantfile, который вызывает приведенный ниже скрипт. Скрипт работает нормально вплоть до последней строки source $dotfile. Когда он доходит до source, сценарий говорит source: not found. Строка перед, cat $dotfile работает просто отлично, так что файл явно существует.

Почему этот файл почему-то не найден для команды source, но он работает для предыдущей команды cat?

output error

==> default: /vagrant/scripts/create_functions_dotfile.sh: 14: /vagrant/scripts/create_functions_dotfile.sh: source: not found

Vagrantfile

config.vm.provision "#{script["name"]}", type: "shell" do |shell|
  shell.inline = "/bin/sh /vagrant/scripts/create_functions_dotfile.sh"
end

scripts/create_functions_dotfile.sh

#!/bin/sh

dotfile=/home/vagrant/.functions.sh

for file in /vagrant/scripts/functions/*; do
  echo "cat $file >> $dotfile"
  cat $file >> $dotfile
done

echo "source $dotfile" >> /home/vagrant/.bashrc
cat $dotfile
source $dotfile
1 5

1 ответ:

Источник специфичен для #!/bin / bash, так что либо вы

  1. Заменить

    #!/bin/sh 
    

    С

    #!/bin/bash 
    
  2. Заменить

    source $dotfile
    

    С

    . $dotfile
    

ETA: на самом деле ошибка жалуется, что "источник" не найден, а не его аргумент.