0
我在创建bash脚本方面相对缺乏经验。我有一个具有以下形式的脚本:创建文件然后复制它的Bash脚本 - 副本有时为空
echo "something" >> somefile
echo "somethingelse" >> somefile
rm -f /somepath/somefile
cp somefile /somepath/somefile
这是什么东西做的是创建一个文件(这在实际应用中充满了从Web表单提交的数据),然后将该文件复制到/somepath/
。
有时,新文件的副本为空,但原始副本包含所有echo
ed数据。
这是否可能与竞争条件有关,因为在复制操作之前数据可能没有被刷新到文件?
是它当Web表单被提交或运行时运行?它可能是一个竞赛条件,例如同一个脚本的多个实例? – epx
谢谢。真名永远是一样的;它从来不是唯一的。这听起来很糟糕,这实际上只是一个简单的嵌入式Web服务器,其表单不太可能同时从各种用户访问。我会尝试你的建议 - 非常感谢! – Trevor
您描述的脚本可能无法通过其他方式存在 - 必须覆盖该文件。 – Barmar