【问题标题】:loop through empty string循环空字符串
【发布时间】:2015-12-28 13:51:33
【问题描述】:

最近发现一段代码让我很困惑:

typeset _Var=''

for _Var
do
   ... a command
done

谁能解释这个循环通过一个空的值列表是如何工作的?

非常感谢您的任何帖子。

【问题讨论】:

  • 其实不然!!
  • typeset _Var='' 中的空字符串是红鲱鱼。 for 关键字将为 _Var 提供其他值,显式使用 in 关键字,或隐式使用 out。见下文。
  • 那是因为for x + newline(!) + do 等价于 POSIX shell for x in "$@"; do。请注意,您 不能 使用 for x; do,因为某些 shell 会错误地解析它。来源:GNU autoconf texinfo 手册,关于可移植外壳的部分。

标签: linux loops for-loop ksh


【解决方案1】:

结构

for var
do
    echo something
done

没有in 关键字将默认为位置参数列表,例如$1$2 等。

所以你的脚本会为每个单独的循环体执行一次 命令行参数。

上面调用为ksh testscript a b c的sn-p会输出:

something
something
something

【讨论】:

    猜你喜欢
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多