如何逃避korn shell中的逗号?

时间:2012-05-30 14:19:42

标签: shell ksh

以下内容:

#!/bin/sh

FOX="{ab,cd}"
echo $FOX

输出我期望的结果({ab,cd})但是:

#!/bin/ksh

FOX="{ab,cd}"
echo $FOX

将逗号变成空格。为什么是这样?我也似乎无法用'\'来逃避逗号。

1 个答案:

答案 0 :(得分:4)

评估$FOX时,你的大括号扩展。

来自ksh手册页:

表单{*,*}

  

为{和,,之间,和之间以及}之间的每个字符串创建一个字段。

所以shell正在以逗号分隔列表并对其进行扩展,以便可以在for循环中使用它。

正如shellter在评论中所建议的那样,只要对其进行评估,就可以通过双引"$FOX"来解决这个问题。

相关问题