我正在编写一个接受两个参数的脚本:
#! /bin/bash
eval for i in {$1..$2}; do echo $i; done
Run Code Online (Sandbox Code Playgroud)
我运行它:
$ ./myscript 0002 0010
syntax error near unexpected token `do'
Run Code Online (Sandbox Code Playgroud)
为什么是错误?
我认为这可能是因为循环应该分组。但是通过替换eval for i in {$1..$2}; do echo $i; done为eval { for i in {$1..$2}; do echo $i; done; },错误仍然存在。
注意:我希望在大括号扩展之前使用eval. 我的示例所需的输出是0002 0003 0004 0005 0006 0007 0008 0009 0010. (请参阅在大括号扩展之前执行参数扩展?)