问题:
/usr/bin/rclone copy "/home/SEND7/02_audio" "cc1-1:cc1-1/SEND7/01_audio" && sleep 1200
上述命令中 sleep 会在 rclone 复制完毕才开始进行吗,还是说 sleep 命令会在 rclone 执行后也会立即执行,尽管此时 rclone 复制并没有完成?假如 rclone 复制完成需要 10 分钟,sleep 需要 20 分钟,那么上述命令执行完毕需要 20 分钟还是 30 分钟呢?
关于上述问题,chatGPT3.5 ,claude ,Gemini 和 Copilot 给出的答案不尽相同,具体答案见附录
chatGPT3.5:答案 30 分钟,回答逻辑有点混乱,见附录
claude:答案 20 分钟,见附录
gemini:答案 30 分钟,见附录
copilot:答案 30 分钟,见附录
我之前做过测试,下面的文件夹删除不会等待 rclone 复制完成后才开始,因此我加了一个 sleep 命令,所以我觉得答案可能是 20 分钟。
/usr/bin/rclone copy "/home/SEND7/02_audio" "cc1-1:cc1-1/SEND7/01_audio"
rm -rf "/home/SEND7/02_audio"
但是我今天在另外一台服务器上做测试时,发现 sleep 好像在 rclone 完成后才开始的,所以有些疑惑
1
hulooq 267 天前
> 来自 gemini-pro 的回答:
``` `sleep` 命令会在 `rclone` 执行后立即执行,而不会等到 `rclone` 复制完毕。因此,上述命令执行完毕需要 20 分钟,而不是 30 分钟。 ``` |
2
Persimmon08 OP @hulooq 所以正确答案应该是 20 分钟,对吧
|
3
deorth 267 天前 via Android 1
你谷歌下 bash &&啥意思就知道了。问 ai 半小时,谷歌五分钟
|
4
Persimmon08 OP |
5
coinbase 267 天前
chatgpt4 怎么说的
|
6
pagxir 267 天前 via Android
答案 30 分钟。你看看这些
test -f /hello && cat /hello 如果同时执行是什么后果 |
7
choury 267 天前 via Android
左侧命令成功则执行右边的命令,否则右侧命令不会执行,这不就是 shell 的短路嘛
|
8
busier 267 天前 via iPhone
@Persimmon08 不是等待复制完成,严格的说是&& 左侧程序返回 0 (通常表示命令执行成功,未出错),右侧才会执行。
所以具体情况,还要看左侧命令到底是执行了就立即返回结果,还是在等待。 |
9
Persimmon08 OP @busier 那上面问题的答案是 30 分钟还是 20 分钟呢
|
11
busier 266 天前 via iPhone
@Persimmon08 嗯
你这种情况就是&&左侧命令执行成功后,返回 0 ,右侧才执行的。一个&才是左右两侧一起执行。 你之前说的,第二条 rm 似乎立即执行了,那么考虑上一条命令是不是出错提前结束了。 我写脚本都是要先 set -e 。 |