2012-05-30 2 views
2

Следующая:Как избежать запятой в оболочке korn?

#!/bin/sh 

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

выводит то, что я бы ожидать ({AB, CD}), но:

#!/bin/ksh 

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

превращает запятую в пространство. Почему это? Я также не могу избежать запятой с '\'.

+2

использовать dbl котировки на вашем 'echo '$ FOX". Удачи. – shellter

ответ

4

Вы получаете расширение скобки, когда оценивается $FOX.

На странице КШ человек:

Для формы {*,*}:

поле создается для каждой строки между {и ,, между ними, и ,, и между ними, и}.

Таким образом, оболочка берет ваш список, разделенный запятой, и расширяет его, чтобы его можно было использовать, например, в цикле for.

Как указано в комментариях, это может быть исправлено путем двойного кавычки всякий раз, когда он оценивается.

Смежные вопросы