shell脚本执行疑问
友友们 我发现我这段代码感觉来不及执行完 就走后面的操作了 ,比如我文件拷贝还没拷完就执行完了。而且删除操作也不是完全执行的。。。就很奇怪有知道的吗
一般sh文件怎么能让它顺序同步可靠点的执行完。。。
rm -rf "$dealpath/*"
cp -r "$dockerpath" "$dealpath"
# rm -rf /wqdata/hhtest/hhtestwebzsuijardocker/appzs/*
# cp -r /wqdata/jenkinsagent/workspace/hhtestweb/docker/wqdata/hhtest/hhtestwebzsuijardocker/appzs
# cp/wqdata/jenkinsagent/workspace/hhtestweb/ruoyi-admin/target/ruoyi-admin.jar/wqdata/hhtest/hhtestwebzsuijardocker/appzs/docker/hhtestadmin
# cp -r/wqdata/jenkinsagent/workspace/hhtestweb/ruoyi-ui/dist /wqdata/jenkinsagent/workspace/hhtestweb/ruoyi-ui/default.conf /wqdata/hhtest/hhtestwebzsuijardocker/appzs/docker/hhtestvue
cp "$hhtestadminjarpath" "$dealpath/docker/hhtestadmin"
cp -r "$hhtestvuepath""$ruoyiuipath/default.conf" "$dealpath/docker/hhtestvue"
##后面继续 操作发现拷贝没全 # 使用 -v 选项显示拷贝进度并确保拷贝完成
cp -rv "$dockerpath" "$dealpath"
# 使用 wait 命令等待前面的 cp 命令执行完毕
wait rm -rf "$dealpath"
sync
cp -r "$dockerpath" "$dealpath"
sync
cp "$hhtestadminjarpath" "$dealpath/docker/hhtestadmin"
sync
cp -r "$hhtestvuepath" "$ruoyiuipath/default.conf" "$dealpath/docker/hhtestvue"
sync
你在每个命令后面都加一个sync命令试试?用多线程试试怎么样 用&&:
cp "$hhtestadminjarpath" "$dealpath/docker/hhtestadmin" && cp -r "$hhtestvuepath""$ruoyiuipath/default.conf" "$dealpath/docker/hhtestvue" 加一个等待时间应该能行吧 这段代码的功能如下:
rm -rf "$dealpath/*":删除 $dealpath 目录下的所有文件和子目录。rm -rf 命令用于递归删除目录及其内容,包括子目录和文件。$dealpath 是一个变量,表示要删除的目录路径。
cp -r "$dockerpath" "$dealpath":将 $dockerpath 目录及其内容复制到 $dealpath 目录下。cp -r 命令用于递归复制目录及其内容,包括子目录和文件。$dockerpath 和 $dealpath 都是变量,表示源目录和目标目录的路径。
# rm -rf /wqdata/hhtest/hhtestwebzsuijardocker/appzs/*:这行代码被注释掉了(以 # 开头),所以它不会被执行。它与第一行的功能相同,会删除指定路径下的文件和子目录。
# cp -r /wqdata/jenkinsagent/workspace/hhtestweb/docker /wqdata/hhtest/hhtestwebzsuijardocker/appzs:这行代码也被注释掉了,不会执行。它将会递归复制指定路径的目录及其内容,包括子目录和文件。 每一步都用重定向>打印出日志,cp不打印的可以加-v参数,重点是加注释一步步看,排查是哪一步没执行成功 向各位大神学习 你这代码看起来没问题,如果没有完全删除,那应该是用户权限问题。
手动一行行执行看看报错信息
页:
[1]