
问题:
/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 2024-03-01 17:54:12 +08:00 > 来自 gemini-pro 的回答: ``` `sleep` 命令会在 `rclone` 执行后立即执行,而不会等到 `rclone` 复制完毕。因此,上述命令执行完毕需要 20 分钟,而不是 30 分钟。 ``` |
2 Persimmon08 OP @hulooq 所以正确答案应该是 20 分钟,对吧 |
3 deorth 2024-03-01 18:11:01 +08:00 via Android 你谷歌下 bash &&啥意思就知道了。问 ai 半小时,谷歌五分钟 |
4 Persimmon08 OP |
5 coinbase 2024-03-01 18:47:17 +08:00 chatgpt4 怎么说的 |
6 pagxir 2024-03-01 18:59:49 +08:00 via Android 答案 30 分钟。你看看这些 test -f /hello && cat /hello 如果同时执行是什么后果 |
7 choury 2024-03-01 19:00:30 +08:00 via Android 左侧命令成功则执行右边的命令,否则右侧命令不会执行,这不就是 shell 的短路嘛 |
8 busier 2024-03-01 19:28:46 +08:00 via iPhone @Persimmon08 不是等待复制完成,严格的说是&& 左侧程序返回 0 (通常表示命令执行成功,未出错),右侧才会执行。 所以具体情况,还要看左侧命令到底是执行了就立即返回结果,还是在等待。 |
9 Persimmon08 OP @busier 那上面问题的答案是 30 分钟还是 20 分钟呢 |
10 Persimmon08 OP |
11 busier 2024-03-01 22:26:43 +08:00 via iPhone @Persimmon08 嗯 你这种情况就是&&左侧命令执行成功后,返回 0 ,右侧才执行的。一个&才是左右两侧一起执行。 你之前说的,第二条 rm 似乎立即执行了,那么考虑上一条命令是不是出错提前结束了。 我写脚本都是要先 set -e 。 |