#!/bin/bash
step_1(){
num1=$RANDOM
}
step_2(){
num2=$RANDOM
}
step_3(){
num3=$RANDOM
}
step_1 &
step_2 &
step_3 &
wait
min=$num1
if (( num2 < min )); then
min=$num2
fi
if (( num3 < min )); then
min=$num3
fi
echo "$min"
如果你不是在多线程中运行它,那么一切都会正常输出,但是添加“&”后代码会产生一个空行
在“多线程”中,命令在子 shell 中执行。因此,变量 num1-3 也在子 shell 中创建,并且在父脚本中不可见。尝试这个: