2017-02-17 4 views
0

Я пытаюсь получить значение из другого сценария оболочки и присваиваем его переменной в сценарии оболочкиПрисвоение переменной со значением из другого скрипта

Я попытался с ниже команды. Но это не работает

BundleVersion= $(sh VersionNumberScript $(PLISTPATH)) 

Могу ли я узнать, что случилось в команде выше

+0

Возможно, вы хотите '$ (PLISTPATH)' быть '$ PLISTPATH', в дополнение к примечанию о пробеле после знака равенства, которого не должно быть. – linuxfan

+0

Действительно, я этого не заметил. Ну, если 'PLISTPATH' - это команда, но, похоже, это не так. –

ответ

1

у вас есть дополнительное пространство после =, который не должен быть там. Синтаксис для назначения в оболочке:

variable=value 

Если вы пишете

variable= value 

будет интерпретироваться как

variable='' value 

, который выступает за «команду„значение“выполнить после установки переменной окружения «переменная» в пустую строку ».

+0

Я пробовал это, но не работал. Когда я пытаюсь запустить скрипт, его печать, но не получает назначение переменной – Icoder

+0

@Icoder: трудно диагностировать, когда вы даже не упоминаете, в какой оболочке вы выполняете эту команду. При этом используется bash: во-первых, выполняется программа PLISTPATH ​​(в дочернем процессе), и ее стандартный вывод собран. Затем выполняется программа 'VersionNumberScript' (либо как Posix-Shell, либо как Bourne Shell, в зависимости от того, где вы находитесь), и получает ранее собранный вывод в качестве параметров (-ов). Наконец, вывод 'VersionNumberScript' сохраняется в переменной' BundleVersion'. – user1934428