Linux脚本:for循环 {1..100}和$(seq 1 100)两种列表模式,什么区别?

分别在什么情况下使用?实练中发现不通用,但不清楚原因
2024年11月16日 03:26
有3个网友回答
网友(1):

{x..y[..i]} 这种形式是bash内部的一种表达式,会生成一个空格分隔的数字序列字符串
$(cmd) 或 `cmd` 是bash的另一种表达式,表示把cmd的输出作为一个字符串
因此可见, 使用$(seq x y)的方式系统会启动一个新的进程运行cmd命令,相对于{x..y}的方式,速度上会有劣势,同时内存占用也会更多,此外还依赖/bin/seq命令的存在。

网友(2):

作用是一样的,不过有的shell是不支持{1..100}这种写法的。

网友(3):

后面的通用些 还支持变量