переменные, заключенные в кавычки в вызове функции, почему? - PullRequest
0 голосов
/ 17 февраля 2012

У меня есть эта проблема, у меня есть два (bourne) сценария оболочки, только с подпрограммами, другой с основной программой.

Проблема заключается в передаче аргументов.

В моем скрипте подпрограммы у меня есть это:

test() { echo "$1" }

При вызове из основной программы, например:

test "foo bar"

Результатом эха является 'foo bar' (обратите внимание на одинарные кавычки) Когда я изменяю свой тест на это:

test() { FOOBAR="foo bar"; echo "$FOOBAR" }

Тогда результат не содержит кавычек.

Тогда подпрограмма получается так:

. testroutines.sh

Используя sh -x, я вижу, что переданная переменная кажется заключенной в одинарные кавычки?

Чего мне не хватает?

1 Ответ

0 голосов
/ 17 февраля 2012

Кажется, это связано с IFS, он был неправильно установлен. В нем не было пробела.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...