You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在BASH中通过空格输入两个整数并实现拆分?

在BASH中按空格拆分输入到多个变量的方法

最直接的解决方案:利用read命令的自动拆分特性

BASH的read命令默认会按照空白字符(空格、制表符、换行符等)拆分输入内容,直接将拆分后的字段赋值给多个变量:

read a b

当你输入12 14并回车后,变量a会被赋值为12,变量b会被赋值为14。如果输入的字段数量超过变量数量,多余的所有内容会被统一赋值给最后一个变量(比如输入12 14 15,b的值会是14 15)。

从已读取的字符串中拆分

如果已经将整行内容读取到一个字符串变量中,可以通过数组实现拆分:

  1. 先读取整行内容:
read string
  1. 将字符串拆分为数组(默认按空白拆分):
arr=($string)
  1. 提取数组元素到目标变量:
a=${arr[0]}
b=${arr[1]}

你也可以直接用read命令一次性将输入读取到数组中:

read -r -a arr
a=${arr[0]}
b=${arr[1]}

其中-r参数用于避免read解析输入中的转义字符,-a指定将输入存储到数组arr中。

你之前方法的问题说明

  • 连续两次read:read a会把第一行的12 14完整赋值给a,read b则会读取下一行的1赋值给b,这和你想要的拆分结果不符。
  • BASH确实没有Python那样的split()函数,但通过上述内置的变量拆分、数组特性完全可以实现相同的需求。

内容的提问来源于stack exchange,提问作者Елисей Микерин

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 18:15:41