Bash 在Vagrant资源调配期间运行脚本时从文件读取?

Bash 在Vagrant资源调配期间运行脚本时从文件读取?,bash,path,vagrant,vagrantfile,Bash,Path,Vagrant,Vagrantfile,在虚拟资源调配阶段运行的文件路径是什么? 在Vagrantfile中,为了将文件放在正确的目录中,我有一个运行shell脚本的config.vm.provision(例如:`path:.provision/setup.sh') setup.sh文件从同一文件夹中的另一个文件读取,以遍历将在客户端计算机上放置文件的git repo列表 该脚本在Vagrant之外的测试中运行良好,但我很难找到它的位置。下面是导致问题的代码示例: filename='./provision/gitrepos' exe

在虚拟资源调配阶段运行的文件路径是什么?

在Vagrantfile中,为了将文件放在正确的目录中,我有一个运行shell脚本的
config.vm.provision
(例如:`path:.provision/setup.sh')

setup.sh
文件从同一文件夹中的另一个文件读取,以遍历将在客户端计算机上放置文件的git repo列表

该脚本在Vagrant之外的测试中运行良好,但我很难找到它的位置。下面是导致问题的代码示例:

filename='./provision/gitrepos'
exec 4<$filename
echo Start
while read -u4 p ; do
  if [ ! -z "$p" ];
  then
    is_website $p
  else
    echo
    echo "This line '#$p' is blank"
    echo
   fi
   done
filename='./provision/gitrepos'

exec 4配置脚本从
/tmp
文件夹执行-如果您使用ssh连接到VM并检查temp文件夹,您将看到类似
vagrant shell
的脚本内容。但是,并非目录中的所有文件都被推送到
/tmp
文件夹

如果您的gitrepos文件位于项目目录中,那么默认情况下,它在
/vagrant
目录下共享,因此您可以从那里读取


如果不是,您需要创建一个特定的脚本,以便可以从VM中读取文件。设置脚本从
/tmp
文件夹执行-如果您ssh到VM并检查临时文件夹,您将看到类似
vagrant shell
的脚本内容。但是,并非所有文件都来自您的目录a重新推送到
/tmp
文件夹

如果您的gitrepos文件位于项目目录中,那么默认情况下,它在
/vagrant
目录下共享,因此您可以从那里读取


如果不是,您需要创建一个特定的文件,以便可以从VM中读取该文件。要清除,
setup.sh
gitrepos
文件都在同一个目录中,但是如果Vagrant是运行脚本的文件,我无法确定如何访问该文件。要清除,请使用
setup.sh
gitrepos文件在同一个目录中,但如果Vagrant是运行脚本的那个,我无法确定如何访问该文件。