wuqingvika 发表于 2023-8-1 14:32

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"


##后面继续 操作发现拷贝没全

rwj1990 发表于 2023-8-1 14:37

# 使用 -v 选项显示拷贝进度并确保拷贝完成
cp -rv "$dockerpath" "$dealpath"

# 使用 wait 命令等待前面的 cp 命令执行完毕
wait

hewuliu 发表于 2023-8-1 15:05

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命令试试?用多线程试试怎么样

若雪 发表于 2023-8-1 15:10

用&&:
cp "$hhtestadminjarpath" "$dealpath/docker/hhtestadmin" && cp -r "$hhtestvuepath""$ruoyiuipath/default.conf" "$dealpath/docker/hhtestvue"

KirchoffNZ 发表于 2023-8-1 15:23

加一个等待时间应该能行吧

zmh886 发表于 2023-8-1 15:37

这段代码的功能如下:

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:这行代码也被注释掉了,不会执行。它将会递归复制指定路径的目录及其内容,包括子目录和文件。

meizhonghao 发表于 2023-8-1 15:41

每一步都用重定向>打印出日志,cp不打印的可以加-v参数,重点是加注释一步步看,排查是哪一步没执行成功

lcg2014 发表于 2023-8-1 17:54

向各位大神学习

myforaward 发表于 2023-8-1 18:07

你这代码看起来没问题,如果没有完全删除,那应该是用户权限问题。
手动一行行执行看看报错信息
页: [1]
查看完整版本: shell脚本执行疑问