Я отлаживаю скрипт sh
. Каково поведение этих строк кода?
SOME_VAR=$(env)
if [ ! -z ${SOME_VAR+x} ]; then
echo "SOMETHING HAPPENED "
fi
Что означает +x
в данном случае? Получается, что с bash
код работает нормально, а с sh
нет.
EDIT: я работаю над развертыванием локального экземпляра Eclipse Che, как это объяснено здесь.
Я установил Eclipse Che CLI, который представляет собой сценарий .sh:
$ curl -sL https://raw.githubusercontent.com/eclipse/che/master/che.sh > /usr/local/bin/che
$ chmod +x /usr/local/bin/che
Чтобы заставить его работать, мне нужно запустить его, используя bash
:
$ bash che start
Если я отлаживаю скрипт...
$ sh -x che start
Скрипт не работает здесь:
get_list_of_che_system_environment_variables() {
[...]
if [ ! -z ${CHE_VARIABLES+x} ]; then
env | grep CHE_ >> $DOCKER_ENV
RETURN=$DOCKER_ENV
fi
Что-то не работает. Если вы скажете, что подстановка должна работать и в .sh, в чем может быть проблема?
sh
? Все команды действительны вsh
. - person   schedule 25.08.2016